在我的crud控制器中,我试图获取当前正在编辑的人的名字。
所以
http://192.168.10.10/admin/people/93/edit
在人民控制器中
public function setup() {
dd(\App\Models\People::get()->first()->name)
}
这将返回第一个不是当前正在编辑的人。
如何返回当前人(本例中ID为93)
答案 0 :(得分:0)
拉赫曼谈到了find($id)
方法。如果要中止404异常,只需使用方法findOrFail($id)
。在我看来,这是更好的方式,因为find($id)->name
可以抛出
“试图获取非对象错误的属性......”
findOrFail($ id)首先获取具有指定ID的用户。如果不存在则只抛出404而不是500。
最好的答案是:
public function edit($id)
{
return \App\Models\People::findOrFail($id);
}
祝你好运。
答案 1 :(得分:0)
好的,所以既然你使用背包看看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。
答案 2 :(得分:-1)
你需要对抗id的人,请尝试以下
public function setup($id) {
dd(\App\Models\People::find($id)->name);
}