以下是chatgpt回答
要增加列表搜索中不存在的值,可以在页面上添加一个隐藏的表单元素,在搜索时将这个表单元素的值设置为所需的值。当提交表单时,这个表单元素的值也会被一同提交。
以下是实现方法:
- 在搜索表单中添加一个隐藏的表单元素,例如:
<form action="{:url('index')}" method="get">
<div class="form-group">
<label>名称</label>
<input type="text" class="form-control" name="name" value="{$Think.get.name}">
</div>
<input type="hidden" name="status" x-model="status">
<button type="submit" class="btn btn-primary"><i class="fa fa-search"></i></button>
</form>
- 在 JavaScript 中使用
x-model
指令绑定这个表单元素的值,例如:
<script>
function main() {
return {
status: '',
search() {
this.status = 'new';
}
};
}
</script>
- 当执行搜索操作时,将
status
变量的值设置为需要搜索的值。当提交表单时,这个表单元素的值也会被一同提交,并且可以在后端控制器中使用 $this->request->param('status')
来获取这个参数的值。例如:
namespace app\admin\controller;
use think\Request;
class Demo extends Admin
{
public function index(Request $request)
{
$where = [];
$where['name'] = ['like', '%' . $request->param('name') . '%'];
if ($request->has('status')) {
$where['status'] = ['=', $request->param('status')];
}
$list = db('demo')->where($where)->paginate(10);
return $this->fetch('index', [
'list' => $list,
]);
}
}
这样就可以在 FastAdmin 的列表搜索中增加列表不存在的值了。