2017-04-22 204 views
0

我正在努力通过在Laravel传递参数,我可以通过URL访问它,但我不想那样做。我收到了未定义的变量:master.blade错误中的用户。Laravel - 传递参数/未定义变量

任何帮助表示赞赏

AuthController.php

function viewUserDetails($userId) 
{ 
    $user = User::find($userId); 
    return view('user/userdetails',['user' => $user]); 
} 

Web.php

Route::get('userdetails/{userId}', '[email protected]'); 

Master.Blade

<li><a href="{{url('userdetails/'.$user->id)}}">Your Details</a></li> 

回答

0

试图通过这样的

return view('user/userdetails')->with('user' => $user); 
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 
0

我假设你已经在user/userdetails.blade扩展master.blade。您需要使用array作为url函数的第二个参数。

<li><a href="{{url('userdetails/', [$user->id])}}">Your Details</a></li> 

最好的做法是在laravel中使用命名路由。

改变你的路线是这样的:

Route::get('userdetails/{userId}', '[email protected]')->named('user_details'); 

在您的刀片可以使用route函数来获取路径。

<li><a href="{{route('user_details', ['userId' => $user->id])}}">Your Details</a></li> 
0

你可以更新您的代码,如:

AuthController.php

function viewUserDetails($userId) 
{ 
    $user = User::find($userId); 
    return view('user.userdetails',compact('user')); 
} 

Web.php

Route::get('userdetails/{userId}', '[email protected]'); 

Master.Blade

<li><a href="{{url('userdetails/',$user->id)}}">Your Details</a></li> 
0

其他人都告诉你关于userdetails的观点,但你的代码是完全正常。你需要做的是通过$user变量的master观点太:

return view('master', ['user' => $user]); 
+0

嗨,我还是从我的master.blade文件 – TF120

+0

越来越不确定的变量用户请出示这使得'master'的视图的方法。 –

+0

这是尴尬,但我不知道你的意思......它会是哪个文件? – TF120