2014-08-08 4 views
2

меня PagesController определены в моем файле маршрутов:Laravel контроллер определяют с маской

Route::controller('/', 'PagesController'); 

Но я использовать еще несколько маршрутов, как:

Route::get('/admin', function() 
{ 
....some code here 
}); 

Мой второй маршрут не работает, потому что все остальные маршруты пытаются найти функции в PagesController. Я могу изменить мой контроллер:

Route::controller('pages', 'PagesController'); 

Но тогда в моей домашней странице, все ссылки будут как www.test.com/pages/..., но мне не нужен, что «страница» в там , Как определить мой контроллер с помощью маски или что-то в этом роде?

ответ

0

изменить порядок вашего определения маршрута к этому:

Route::get('/admin', function() 
{ 
....some code here 
}); 

Route::controller('/', 'PagesController'); 

Это будет выглядеть для /admin первых, и если она не может найти его, это когда они идут ваши другие маршруты ...

+0

Сначала я пробую это, но у меня была одна ошибка с другими моими маршрутами. Я пробую это еще раз, и он работает. Спасибо, в любом случае :) – user3921996

0

Попробуйте изменить Route::controller({same content as the question}) к Route::resource({same content as the question})

+0

В этом случае ошибка - метод index не exsist. – user3921996

+0

Да, тогда добавьте индексный метод вместо getIndex .. – Ley

1

Laravel позволяет вам легко определить один маршрут, чтобы обрабатывать каждое действие в контроллере, используя простые соглашения об именах REST. Во-первых, определить маршрут с помощью метода контроллера :: Маршрут:

Route::controller('pages', 'PagesController') 

Это единственный маршрут, чтобы определить все действия в контроллере, используя REST именования поэтому вы получаете/страниц.

Для корня вашего приложения вам нужно указать метод, который вы хотите вызвать, в своем ContactController.

Пример:

Route::get('/', array('as' => 'home', 'uses' => '[email protected]')); 

Разместите эту линию в верхней части вашего маршрута в файле маршрутов.

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