【问题标题】:Livewire Datatables - Transform column and filterLivewire 数据表 - 转换列和过滤器
【发布时间】:2021-11-06 11:19:07
【问题描述】:

我正在尝试通过回调替换列数据,该回调必须返回一个用户名,映射到用户唯一标识符。用户名列表不在模型的数据范围内,这就是我卡住的地方。 我不能将 filterable() 与用户名列表一起使用,因为它将不正确,因为 Eloquent 无法按用户名过滤 - 只能按用户标识符。

以下代码的最终结果是执行“WHERE users.id = The username for X”而不是“WHERE users.id = X”的查询。

我的模特:

<?php

class User extends Model 
{
    protected $table = 'users';
    protected $fillable = ['id'];

    public static function getNamesProperty()
    {
         return ['Username #1', 'Username #2'];
    }
}


class LogsTable extends LivewireDatatable
{
    public $model      = User::class;
    public $exportable = true;
    public $hideable   = 'select';

    public function builder()
    {
        return User::query();
    }

    public function columns()
    {
        return [
        Column::callback(['id'], function ($id) {
            return "The username for " . $id;
        })->label('Username')->filterOn('users.id')->filterable(User::names()),
         ];
    }

问题是我如何实现目标 - 能够过滤,同时显示用户名而不是标识符?

【问题讨论】:

    标签: laravel laravel-livewire laravel-datatables


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-07
      • 2019-10-07
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 2021-04-25
      • 1970-01-01
      相关资源
      最近更新 更多