laravel-admin 模型表单简单使用api范例

    |     2021年1月3日   |   学习偶记   |     评论已关闭   |    281

在用户添加站点时候,数据表里记录的是user_id,管理员不可能记住每个用户的id,所以就需要使用快捷一点的办法来输入。

我采用的是下拉框里输入用户名查询的方式来解决这个痛点。而这个方法,则需要使用api的方式来完成用户名对应id的操作。

api效果预览

api效果预览

控制器form()中的代码

$form->select('front_customers_id','客户名称')->options(function ($id) {
//只显示一条
if($id)
{
$user = FrontCustomer::find($id);
}
else
{
$user = FrontCustomer::first();
}
if ($user) {
return [$user->id => $user->user_name];
}
})->ajax('/admin/api/customers');

说明:$id 是修改的时候,用户id字段值$id会有值,会把用户名给读出来。

然后我在控制器中新增了一个方法:

//用户id和name
public function customers(Request $request)
{
$q = $request->get('q');
return FrontCustomer::where('user_name', 'like', "%$q%")->paginate(null, ['id', 'user_name as text']);
}

说明:需要use Illuminate\Http\Request;

最后在app/admin/route.php中添加路由即可:

$router->get('/api/customers', '[email protected]')->name('admin.api.customers');

为什么ajax里是/admin/。。。而路由是/api。。。那是因为config里admin.php中配置了路由前缀admin.

噢!评论已关闭。