laravel - Livewire 数据表 - 转换列和过滤器
问题描述
我正在尝试通过回调替换列数据,该回调必须返回一个用户名,映射到用户唯一标识符。用户名列表在模型数据之外,这就是我被困的地方。我不能将 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()),
];
}
问题是我如何实现目标 - 能够过滤,同时显示用户名而不是标识符?
解决方案
GitHub上有一个答案:https ://github.com/MedicOneSystems/livewire-datatables/issues/284
谢谢马克!
推荐阅读
- java - java向量递归解生成子集有不同的结果
- javascript - 如何在 vue 组件中的 createElement 之后应用 css 样式?
- python-2.7 - 如何检查机器人框架中的数据类型?
- ruby-on-rails - 带有 .ppk 密钥身份验证的 Net::SFTP
- java - 如何运行位于 jar 中的 VBScript?
- json - Postgres / 跨更新保留 json 列数据
- verification - 写入两个不同寄存器之一但具有相同字段的序列
- r - 将连接的列拆分到相应的列位置
- hibernate - 在 Hibernate 事件 PostLoadEvent 和 PostUpdateEvent 中从会话中获取分离的对象
- macos - (自动)续订订阅后,本地收据不会更新