我在路线中有资源并且工作正常,我想将其更改为Route::controller
。
但在定义我在php artisan route
中收到错误后:
+--------+------------------------------------+-----------+---------------------------------+----------------+---------------+
| Domain | URI | Name | Action | Before Filters | After Filters |
+--------+------------------------------------+-----------+---------------------------------+----------------+---------------+
| | GET index | index | Closure | | |
| | GET admin/index | dashboard | Closure | | |
| | GET logout | logout | Closure | | |
| | POST auth | auth | Closure | csrf | |
| | GET login | login | Closure | | |
| | GET admin/admin/profile/{_missing} | | ProfileController@missingMethod | | |
+--------+------------------------------------+-----------+---------------------------------+----------------+---------------+
我当前的路线是:
Route::resource('profile' , 'ProfileController', array('as'=>'profile') );
我希望将其更改为:
Route::controller('admin/profile', 'ProfileController', array('index'=>'profile.index') );
如何解决这个问题?
答案 0 :(得分:2)
这不是错误,资源和控制器路由完全不同。
资源路由具有预定义的路由列表(索引,创建,存储,删除,更新)。如果您没有在控制器中设置方法,它仍然可以工作,除非有人点击那条路线。
控制器路由依赖于您的控制器方法:
public function getIndex() {}
public function getCreate() {}
public function postStore() {}
方法名称预定义为
<http method><your action name>()
如果您的控制器中没有这些方法,Laravel将不会在您的路线列表中显示它们。
所以,只需创建一个
public function getIndex() {}
在你的控制器中运行
php artisan route
再次
答案 1 :(得分:0)
使用:
Route::resource('profile, 'ProfileController', array('as' => 'profile', 'names' => array('index' => 'profile.index')));
而不是上述路线。