Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 05.08.2014 10:27:54

Оптимизировать routes

День добрый, создал контроллер но не по философии 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)

Не в сети

#2 06.08.2014 07:19:43

Re: Оптимизировать routes

Да, один из минусов laravel - для роутов приходится писать вот такие простыни. Я юзаю live templates в шторме, сильно ускоряет процесс написания однотипного кода.

Цикл имхо нет смысла юзать - какая разница, где писать соответствие урлов контроллерам и именам, в массиве или в роутах.

Не в сети

#3 06.08.2014 21:36:43

Re: Оптимизировать routes

Спасибо, даже не знал, очень удобно

Не в сети

#4 11.08.2014 22:49:18

Bro

Re: Оптимизировать routes

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'));

Можно сделать так

#5 17.08.2014 22:40:36

Ekuzkamaza

Re: Оптимизировать routes

Один из минусов (улыбнуло) большая простыня роутов, у лары только один минус скорость выполнения
у лары роутами можно рулить регуляркми и не только

как один из вариантов, урлы из базы, типа как в магенто

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-/]*');

старинный вариант где-то есть грамотно написанный с ходу не нашел.

#6 19.08.2014 11:13:06

vanchelo
Откуда: Украина, Киев
Сообщений: 32
Сайт

Re: Оптимизировать routes

Сергей, именовать роуты в Route::controller можно!
https://gist.github.com/vanchelo/6a79cd124b8de46778bd

Не в сети

Подвал раздела