Laravel Routes - възможно ли е да не ги използвате изобщо?

Аз съм начинаещ в Laravel 3.x с опит в CI.

Много съм запознат с използването на контролери, а не на маршрути, и имам проблеми, опитвайки се да използвам контролери в Laravel.

Например: да кажем, че имам home_controller и действието "about". Проблемът ми е, че имам достъп до действието „относно“ само като задам маршрут, който сочи към него - нещо, което смятам за нежелателно.

Има ли начин да накарате действието „относно“ да работи, без да задавате маршрут?


person darksoulsong    schedule 02.04.2013    source източник


Отговори (4)


В laravel всичко може да бъде постигнато с помощта на маршрути и/или контролери.

Въпреки това използването както на маршрути, така и на контролери се препоръчва за голяма гъвкавост. Вижте тази статия за повече информация и някои примери как да комбинирате маршрути с контролери.

Както и да е, ако искате да използвате контролери (което е напълно приемливо), трябва да ги регистрирате във вашия routes.php с Route::controller('yourcontroller'), преди да можете да ги използвате.

person Adrenaxus    schedule 03.04.2013
comment
Благодаря за връзката към тази статия. Беше много полезно. - person darksoulsong; 10.04.2013

Всичко трябва да бъде маршрутизирано в Laravel. Но не е нужно ръчно да маршрутизирате всеки метод. Бихте могли да направите нещо подобно на Route::controller('admin').

Вижте тук: http://laravel.com/docs/routing#controller-routing

person JeffreyWay    schedule 02.04.2013
comment
Можете също да използвате Route::controller(Controller::detect()), но не се препоръчва, тъй като може да е дефектен в зависимост от вашата настройка. - person Mike Rockétt; 03.04.2013

Харесвам решението на Майк Антъни. Когато използвате само контролери, този метод за откриване е всичко, което трябва да направите - това автоматично ще регистрира всичките ви контролери. Най-доброто решение без ръце досега. Обичайната регистрация на контролера е, както момчетата вече споменаха, това:

Route::controller('controllername');   
person Hexodus    schedule 03.04.2013
comment
Controller::detect() не трябва да се препоръчва като решение. Не е и причинява много проблеми. Ръчната регистрация, както показахте, е много по-добър подход. - person Jason Lewis; 06.04.2013

Трябва да регистрирате всички контролери, както в примера по-горе. Това е един ред код на контролер и това е правилото. Но ако имате статична страница или действие за влизане (страница), добра практика е да създадете контролер на маршрут (анонимна функция), а не класически контролер (в папката на контролерите).

person spezia    schedule 03.04.2013