控制器方法未定义错误 - Laravel 5.1
Controller Method not defined error - Laravel 5.1
我试图在我的主导航中显示当前登录的用户名,作为用户信息的 link。我可以获得要显示的名称,因此我从数据库中提取信息,并将其传递给视图 OK。但是,当我尝试将其设置为 link 时,出现方法未定义错误。
以下是我将用户信息传递给导航的方式(作为 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>
我试图在我的主导航中显示当前登录的用户名,作为用户信息的 link。我可以获得要显示的名称,因此我从数据库中提取信息,并将其传递给视图 OK。但是,当我尝试将其设置为 link 时,出现方法未定义错误。
以下是我将用户信息传递给导航的方式(作为 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>