在我的 crud 控制器中,我试图获取当前正在编辑的人的姓名。
所以
http://192.168.10.10/admin/people/93/edit
在人员 crud 控制器中
public function setup() {
dd(\App\Models\People::get()->first()->name)
}
这将返回第一个人而不是当前正在编辑的人。
如何返回当前人(本例中 id 为 93)
在我的 crud 控制器中,我试图获取当前正在编辑的人的姓名。
所以
http://192.168.10.10/admin/people/93/edit
在人员 crud 控制器中
public function setup() {
dd(\App\Models\People::get()->first()->name)
}
这将返回第一个人而不是当前正在编辑的人。
如何返回当前人(本例中 id 为 93)
好的,既然你使用了背包,请查看 CrudController 以查看该方法的外观:
public function edit($id)
{
$this->crud->hasAccessOrFail('update');
$this->data['entry'] = $this->crud->getEntry($id);
$this->data['crud'] = $this->crud;
$this->data['fields'] = $this->crud->getUpdateFields($id);
$this->data['id'] = $id;
return view('crud::edit', $this->data);
}
所以现在您可以覆盖编辑功能并更改您想要的任何内容。如果您愿意,您甚至可以创建自定义编辑页面。
另一方面,设置通常用于添加诸如
$this->crud->addClause(...);
或者您甚至可以获取整个构造函数并将其放入 setup 方法中,因为 setup 调用如下所示:
public function __construct()
{
// call the setup function inside this closure to also have the request there
// this way, developers can use things stored in session (auth variables, etc)
$this->middleware(function ($request, $next) {
$this->setup();
return $next($request);
});
}
所以你可以做类似的事情\Auth::user()->id;
像这样工作也很正常。如果您只使用纯 laravel,您将只能访问您相应设置的路由中的当前 ID。
拉赫曼谈到了find($id)
方法。如果要中止 404 异常,只需使用 method findOrFail($id)
。在我看来这是更好的方法,因为find($id)->name
可以抛出
“试图获取非对象错误的属性......”
findOrFail($id) 首先获取具有指定 ID 的用户。如果不存在,则抛出 404,而不是 500。
最佳答案是:
public function edit($id)
{
return \App\Models\People::findOrFail($id);
}
祝你好运。
你需要人反对身份证,试试下面
public function setup($id) {
dd(\App\Models\People::find($id)->name);
}