Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
День добрый, создал контроллер но не по философии laravel а чуть упростил (соединив вывод формы и запись формы)
и столкнулся с такой проблемой
Получается для 10 контроллеров мне нужно будет писать кучу кода? можно ли как то это упростить?
если сделать цыклом где имена контроллеров будет выдёргиваться из массива?
Route::get('category', array('uses' => 'CategoryController@index', 'as' => 'category.index'));
Route::get('category/create', array('uses' => 'CategoryController@edit', 'as' => 'category.create'));
Route::get('category/edit/{id}', array('uses' => 'CategoryController@edit', 'as' => 'category.edit'));
Route::post('category/store', array('uses' => 'CategoryController@store', 'as' => 'category.store'));
Route::post('category/store/{id}', array('uses' => 'CategoryController@store', 'as' => 'category.store'));
Route::get('category/destroy/{id}', array('uses' => 'CategoryController@destroy', 'as' => 'category.destroy'));
Route::controller() не совсем подходит т.к. нет имён роутов
Route::resource() не подходит т.к. (update и store) и (create и edit) нельзя объединить
Изменено Сергей (05.08.2014 10:34:24)
Не в сети
Да, один из минусов laravel - для роутов приходится писать вот такие простыни. Я юзаю live templates в шторме, сильно ускоряет процесс написания однотипного кода.
Цикл имхо нет смысла юзать - какая разница, где писать соответствие урлов контроллерам и именам, в массиве или в роутах.
Не в сети
Спасибо, даже не знал, очень удобно
Не в сети
Route::resource('category', 'CategoryController', array('except' => array('create', 'store', 'update')));
Route::get('category/create', array('uses' => 'CategoryController@edit', 'as' => 'category.create'));
Route::post('category/store/{id}', array('uses' => 'CategoryController@store', 'as' => 'category.store'));
Можно сделать так
Один из минусов (улыбнуло) большая простыня роутов, у лары только один минус скорость выполнения
у лары роутами можно рулить регуляркми и не только
как один из вариантов, урлы из базы, типа как в магенто
Route::get('{ek_path?}', function($ek_path)
{
$ek_url = DB::table('url_alias')->where('url_path', $ek_path)->distinct()->get();
if (count($ek_url) === 1)
{
return View::make($ek_url[0]->template, array('ek_id'=>$ek_url[0]->id));
}
return View::make('notfound');
})->where('ek_path', '[a-zA-Z0-9-/]*');
старинный вариант где-то есть грамотно написанный с ходу не нашел.
Сергей, именовать роуты в Route::controller можно!
https://gist.github.com/vanchelo/6a79cd124b8de46778bd
Не в сети
Страницы 1