Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Приветствую! Такой вопрос:
Есть контроллер, который выполняет работу только с POST запросами. В нем куча методов
class CoreController extends BaseCOntroller{
public function methodOne(){
// do something
}
public function methodTwo(){
// do something
}
}
Хочу сделать какую-нибудь конструкцию уникальную для данного контроллера. Т.е. если route начинается на "/proc", то использовать контроллер CoreController и нужный метод. Придумал вот такое решение:
Route::post("/proc/{neededmethod}", function($needmethod) {
return Redirect::action("CoreController@$needmethod"); // to needed controller and needed method
});
Но выдает ошибку "Route [CoreController@methodOne] not defined"
когда отправляю запрос по адресу "/proc/methodOne"
Делаю это для того, чтобы не описывать для каждого запроса свой route, уж очень накладно да и не правильно мне кажется
Не в сети
решение:
class CoreController extends BaseCOntroller{
public function postOne(){
// do something
}
public function postTwo(){
// do something
}
}
файл app/routes.php
Route::controller('post', 'CoreController');
урл первого метода:
http://youdomain com/post/one
урл второго метода:
http://youdomain com/post/two
в общем сделал как-то так, но все равно не работает(
Route::post("/proc/{needmethod}", "CoreController@navig");
class CoreController extends BaseController{
public function navig($needmethod){
call_user_func(array($this, $needmethod));
}
public function methodOne(){
echo "some string for test";
return View::make("/viewOne");
echo "second text";
}
public function methodTwo(){
// do something
}
}
}
Какая проблема: если убрать строку <b>echo "some string for text";</b> то вообще ничего не выводится. Если строку оставить то в браузер выводится строка "some string for test" и все. Получается не отрабатывает View. В чем может быть проблема?
если создать маршрут
Route::post("/proc/methodOne", "CoreController@methodOne")
то вся View отработает как надо и все отобразится
Не в сети
Спасибо! Как-то не внимательно прочитал доки(
Не в сети
Страницы 1