laravel-admin 模型表单简单使用api范例
在用户添加站点时候,数据表里记录的是user_id,管理员不可能记住每个用户的id,所以就需要使用快捷一点的办法来输入。
我采用的是下拉框里输入用户名查询的方式来解决这个痛点。而这个方法,则需要使用api的方式来完成用户名对应id的操作。
控制器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', 'FrontSiteController@customers')->name('admin.api.customers');
为什么ajax里是/admin/。。。而路由是/api。。。那是因为config里admin.php中配置了路由前缀admin.
噢!评论已关闭。