laravel blade 文件中未定义的变量

Undefined variable in laravel blade file

提问人:Timothy 提问时间:6/7/2022 最后编辑:James ZTimothy 更新时间:11/2/2022 访问量:1981

问:

我是laravel的新手,请帮助我解决这个错误。

这是我的控制器功能“编辑”

public function edit($id)
{
    $user = User::find($id);
    return view('users.edit-profile',['user'=>$user]);
}

这是我的观点 users.edit-profile

<div class=" mb-4" style="border: 1px solid #979797; border-radius: 4px;width: 360px;height: 40px;margin-left: 200px;" >
<input type="text" name="name" id="name" onkeyup="isEmpty()" value="{{$user->name}}" class="form-control" >
</div>

这是路线

Route::get('/edit_profile',[profileController::class,'index']);
Route::get('/edit_profile/{id}',[profileController::class,'edit'])->name('edit_profile');

这是错误

Undefined variable: user (View: C:\xampppp\htdocs\clipboard_nation\resources\views\users\edit-profile.blade.php)

此错误显示未定义我在刀片文件中使用的$user变量。

PHP Laravel 变量 视图 undefined-variable

评论

1赞 Aqib Javed 6/7/2022
尝试使用 return view('users.edit-profile',compact('user'));在控制器中

答:

0赞 Natvarsinh Parmar - bapu 6/7/2022 #1

试试这个

public function edit($id)
{
    $user = User::findOrFail($id);

    return view('users.edit-profile', compact('user'));
}
0赞 MaggsWeb 6/7/2022 #2

由于刀片文件不存在$user因此在刀片文件中引发错误。

一个选项是防止该错误直接在边栏选项卡文件中发生,方法是在变量不存在时提供默认值。

<input type="text" name="name" id="name" value="{{$user ? $user->name : ''}}" >
0赞 Hamza Shiwani 6/7/2022 #3

试试这个

public function edit($id) {
  $data['user']= User::findOrFail($id);
  return view('users.edit-profile', $data);
}

评论

0赞 Tyler2P 6/8/2022
通过添加有关代码的作用以及它如何帮助 OP 的更多信息,可以改进您的答案。
0赞 Pepe F. 11/2/2022 #4

我也有类似的问题,也尝试将用户数据添加到索引方法中

$user = User::find($id);
return view('users.edit-profile',['user'=>$user]);