我试图显示当前登录的用户名,作为用户信息的链接,在我的主要导航。我可以获得要显示的名称,所以我从数据库中提取信息,并将其传递给视图OK。但是,当我试图使它成为一个链接时,我得到了方法未定义错误。
下面是我如何将用户信息传递给导航(作为var $userInfo):public function index()
{
$Clients = 'Auth::user()->clients()->get();
$userInfo = 'Auth::user();
return view('clients.index', compact('Clients', 'userInfo'));
}
这是我的导航的相关部分:
<ul class="nav navbar-nav">
<li>{!! link_to_action('AuthController@show', $userInfo->username, [$userInfo->id]) !!}</li>
</ul>
来自控制器的方法:
protected function show($id)
{
$userInfo = User::findOrFail($id);
return view('users.show', compact('userInfo'));
}
路由定义:
// User Display routes
Route::get('auth/{id}', 'Auth'AuthController@show');
下面是我得到的错误:
Action App'Http'Controllers'AuthController@show not defined.
谁能告诉我我错过了什么?
首先,您需要使您的AuthController::show()方法public:
public function show($id)
{
$userInfo = User::findOrFail($id);
return view('users.show', compact('userInfo'));
}
其次,由于控制器位于App'Http'Controllers'Auth命名空间中,因此需要在视图中使用**Auth**前缀:
<ul class="nav navbar-nav">
<li>{!! link_to_action('Auth'AuthController@show', $userInfo->username, [$userInfo->id]) !!}</li>
</ul>