我正在努力在Laravel中传递参数,我可以通过URL访问它,但我不希望这样。我在master.blade错误中收到Undefined variable:user。
感谢任何帮助
AuthController.php
function viewUserDetails($userId)
{
$user = User::find($userId);
return view('user/userdetails',['user' => $user]);
}
Web.php
Route::get('userdetails/{userId}', 'AuthController@viewUserDetails');
Master.Blade
<li><a href="{{url('userdetails/'.$user->id)}}">Your Details</a></li>
答案 0 :(得分:1)
其他人告诉你关于userdetails
视图,但你的代码完全没问题。您需要做的是将$user
变量也传递到master
视图:
return view('master', ['user' => $user]);
答案 1 :(得分:0)
尝试像这样传递
return view('user/userdetails')->with('user' => $user);
答案 2 :(得分:0)
<强>控制器:: 强>
function viewUserDetails($userId)
{
$user = User::find($userId);
return view('user.userdetails')-with('user',$user);
}
然后在刀片文件中使用..
@foreach ($user as $data){
<h1> {{ $data['_id'] }} </h1>
<h1> {{ $data['name'] }} </h1>
@endforeach
答案 3 :(得分:0)
我假设你在master.blade
中扩展了user/userdetails.blade
。您需要使用array
作为url
函数的第二个参数。
<li><a href="{{url('userdetails/', [$user->id])}}">Your Details</a></li>
最佳做法是在laravel中使用命名路由。
改变你的路线:
Route::get('userdetails/{userId}', 'AuthController@viewUserDetails')->named('user_details');
在您的刀片中,您可以使用route
功能来获取路径。
<li><a href="{{route('user_details', ['userId' => $user->id])}}">Your Details</a></li>
答案 4 :(得分:0)
您可以更新代码,如:
AuthController.php
function viewUserDetails($userId)
{
$user = User::find($userId);
return view('user.userdetails',compact('user'));
}
Web.php
Route::get('userdetails/{userId}', 'AuthController@viewUserDetails');
Master.Blade
<li><a href="{{url('userdetails/',$user->id)}}">Your Details</a></li>