2014-02-07 2 views
0

У меня есть ресурс в маршруте, и это работает правильно, и я хочу изменить его на Route::controller.Laravel Использование контроллера Маршрут

, но после того, как определить, что я получаю ошибку в 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} |   | [email protected] |    |    | 
    +--------+------------------------------------+-----------+---------------------------------+----------------+---------------+ 

мой Текущий маршрут:

Route::resource('profile' , 'ProfileController', array('as'=>'profile')); 

и я хочу изменить, что:

Route::controller('admin/profile', 'ProfileController', array('index'=>'profile.index')); 

как решить эту проблему?

ответ

0

Использование:

Route::resource('profile, 'ProfileController', array('as' => 'profile', 'names' => array('index' => 'profile.index'))); 

Вместо либо вышеуказанные маршруты.

+0

Вы читаете мой купон? –

+1

Я прочитал ваш вопрос, и я согласился с тем парнем, который дал ответ в [this] (http://stackoverflow.com/questions/19102534/laravel-4-routeresource-vs-routecontroller-which-to-use) после. Использование :: controller - это плохая практика, и ее следует избегать. По этой причине я рекомендовал вышеприведенную строку кода, которая должна выполнить ваши требования. – Patrick

+0

и ваше предложение 'resource' :) –

2

Это не ошибка, маршруты ресурсов и контроллеров - это совершенно разные вещи.

Пути ресурсов имеют предопределенный список маршрутов (индекс, создание, сохранение, удаление, обновление). Если у вас нет установленного в контроллере метода, он все равно будет работать, если только кто-то не ударит по этому маршруту.

маршруты контроллера зависит от ваших методов контроллера:

public function getIndex() {} 
public function getCreate() {} 
public function postStore() {} 

Методы предопределенными именами, как

<http method><your action name>() 

Если эти методы не присутствуют в вашем контроллере, Laravel не будет показывать их в списке маршрутов ,

Так, просто создать

public function getIndex() {} 

В контроллере и запустить

php artisan route 

снова.

+0

спасибо. Я получаю этот результат сейчас. 'GET admin/admin/profile/index/{one?}/{two?}/{three?}/{four?}/{five?}' как установить 'as' для этого? моя ссылка '/ admin/profile' как решить эту проблему? –

+0

Являются ли эти маршруты внутри 'route :: group'? –

+0

У меня есть один маршрут в 'group' –

Смежные вопросы