gpt4 book ai didi

php - 在 Laravel Backpack 中用一列过滤表

转载 作者:行者123 更新时间:2023-12-01 13:14:12 26 4
gpt4 key购买 nike

我有一个 Employee 表,显示如下:

+-------------------------------+
| id | name | code |
---------------------------------
| 1 | Employee 1 | A1 |
| 2 | Employee 2 | A2 |
| ... | ... | ... |
+-------------------------------+

我想在此表中按代码列创建过滤器。我的查询将是这样的:

SELECT name FROM employee WHERE code LIKE .% $filter %.

我在背包文档中搜索并尝试这样做

$this->crud->addFilter(
[
'type' => 'select2',
'name' => 'code',
'label' => 'Filter',
],
function () {
return Employee::select('code')->distinct()->get()->toArray();
},
function ($value) {
$this->crud->addClause('where', 'code', $value);
}
);

但出现错误:htmlspecialchars() expects parameter 1 to be string, array given。我该如何解决这个问题?

非常感谢!

最佳答案

您生成员工代码列表的代码此时返回一个这样的数组,而包需要一个字符串数组。

[
['code' => 'A1'],
['code' => 'A2'],
];

要解决此问题,您需要从数组中提取 code 列,并通过代码对其进行键控:

$this->crud->addFilter([
'type' => 'select2',
'name' => 'code',
'label' => 'Filter',
],
function() {
return Employee::select('code')->distinct()->get()->pluck('code', 'code')->toArray();
},
function($value) {
$this->crud->addClause('where', 'code', $value);
});

这将导致如下结果:

[
'A1' => 'A1',
'A2' => 'A2',
];

关于php - 在 Laravel Backpack 中用一列过滤表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57121402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com