Laravel - 传递参数/未定义变量

时间:2017-04-22 12:27:04

标签: laravel

我正在努力在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>

5 个答案:

答案 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>