Laravel 基础教程

Laravel FAQ

Laravel 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/laravel-admin-grid-array-column-map-display.html

laravel admin grid 如何针对数组输出列进行映射后标签显示

Laravel 笔记 Laravel 笔记


laravel admin 表单的列显示中,若对应字段列(column)为数组形式,如何将其值与现有的 map 映射值后,多个标签显示?

推荐方式

对展示的列进行自定义函数的 display 后,链式调用用 label,具体代码如下:

$grid->column('prop_ids', '筛选项')->display(function ($prop_ids) {

    $prop_id_map = [
        4 => '项目功效', 5 => '品牌', 13 => '规格', 903 => '仪器', 905 => '药品', 906 => '材料',
    ];
    $prop_ids = array_map(function ($prop_id) use ($prop_id_map) {
        return "{$prop_id_map[$prop_id]}";
    }, $prop_ids);

    return $prop_ids;

})->label();

这里需要注意的是,如上示例中 prop_ids 当前获取的要确保是数组输出,笔者的示例中的 prop_ids 真实字段值是用逗号分隔的字符串形式数据,在从 model 中获取时,做了逗号分隔的数组提取处理,如下:

class XXX extends Model
{
    protected $connection = "xxxx";
    protected $table = "xxxxx";

    ...

    public function getPropIdsAttribute($value)
    {
        return explode(',', $value);
    }

    public function setPropIdsAttribute($value)
    {
        $this->attributes['prop_ids'] = implode(',', $value);
    }
}

 

laravel admin 列表页提供 filter 筛选项,那如何使用 like 模糊查询指定字段文本? ...
laravel admin 如何获取当前登陆用户信息,用于记录操作者 id? ...
Laravel是一款流行的开源PHP框架,旨在帮助开发人员构建优雅、简洁且功能强大的Web应用程序。TaylorOtwell通过持续的更新和 ...
数组是一种数据结构,用来存储同一类型值的集合。通过一个整型下标可以访问数组中的每一个值。例如,如果 a 是一个整型数组,a[i] 就是数组中 ...
Laravel 开发中常见的问题收集。 ...