我有这条路线:
Route::resource('users', 'UserController');
Route::get('/users/create', 'UserController@create');
,控制器功能是:
public function index()
{
$users=User::all();
return View('users.index',compact('users'));
}
我在index.blade.php
中显示了此代码,其中显示错误:
<p>{{ link_to_route('users.create', 'Add new user') }}</p>
错误信息是:
路由[users.create]未定义。 (视图: C:\ XAMPP \ htdocs中\ larapro \资源\视图\用户\ index.blade.php)
答案 0 :(得分:1)
如果您希望视图中提到的路线有效,可以像这样添加。
Route::get('users/create', ['as' => 'users.create', 'uses' =>'UserController@create']);
虽然应该注意Route::resource()
为您提供索引,创建,编辑,存储,显示,更新,删除路线。所以你正在编写冗余代码,第二次声明路由。
它正在使用Route::resource
请参阅Laravel文档: https://laravel.com/docs/5.2/controllers#restful-resource-controllers
如果在项目文件夹中运行php artisan route:list
,您应该会看到为上面声明的资源“用户”创建的路径列表。
或者,删除您声明为Route :: resource的第二个路由应该全部处理。
答案 1 :(得分:1)
此行是多余的,应删除:
Route::get('/users/create', 'UserController@create');
它会导致您描述的问题,因为......
Route::resource()
已经注册了与此类似的路由,并自动将其命名为users.create
。 /users/create
注册路线时,会使用新路线替换该网址的现有路线。 users.create
),因此现在没有该路线的路线。因此,当您尝试在那里生成链接时,您将获得Route [users.create] not defined
例外。