首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在EasyAdmin3中使用formatValue()方法格式化ArrayField的值?

如何在EasyAdmin3中使用formatValue()方法格式化ArrayField的值?
EN

Stack Overflow用户
提问于 2021-09-24 15:06:25
回答 1查看 0关注 0票数 0

我正在尝试使用formatValue()方法格式化ArrayField的渲染值。

formatValue()可以很好地处理其他类型的字段,但是当我在此方法中返回值时,FieldArray会一直呈现旧的、原始的、非格式化的值。

我试图返回一个数组作为原始值(我认为这是正确的方法),因为原始值也是一个数组,但是只有当我返回null时,显示的值才会改变。

在ArrayField中使用此方法时,EasyAdmin文档没有指定特定的方法

下面是我用来创建字段的代码片段,ArrayField属于一个数组,该数组在我的CrudController的configureFields方法中返回:

代码语言:javascript
复制
ArrayField::new('bienType', 'Type de bien')->hideOnIndex()->formatValue(function ($values) {
        
        foreach ($values as &$value) {
          switch ($value) {
            case 'localcommercial':
              $value = "Local commercial";
              break;
            case 'chateau':
              $value = "Château";
              break;
            case 'chambredhotes':
              $value = "Chambre d'hôtes";
              break;
            default:
              $value = ucfirst($value);
              break;
          }
        }

谢谢你的帮助,我已经找遍了,但还是找不到答案。祝你一天愉快!

EN

回答 1

Stack Overflow用户

发布于 2021-09-27 08:22:49

我想我只是做错了,我最终在我的实体类中创建了以下方法,并在CrudController的configureFields()方法中调用它:

添加到实体类中:

代码语言:javascript
复制
  public function getReadableBienType(): ?array
  {

    $formattedValues = [];

    foreach ($this->getBienType() as $bienType) {

      $formattedValue = null;

      switch ($bienType) {
        case 'localcommercial':
          $formattedValue = "Local commercial";
          break;
        case 'chateau':
          $formattedValue = "Château";
          break;
        case 'chambredhotes':
          $formattedValue = "Chambre d'hôtes";
          break;
        default:
          $formattedValue = ucfirst($bienType);
          break;
      }

      array_push($formattedValues, $formattedValue);
    }

    return $formattedValues;
  }

在configureFields()中更改:

代码语言:javascript
复制
ArrayField::new('getReadableBienType', 'Type de bien')->hideOnIndex()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69317278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档