Блог программиста

Изучаем и разрабатываем что-то новое, делимся опытом.

Контроллеры в Laravel

Логику обработки запросов можно реализовать в файлах маршрутов. Но более правильно вынести её в классы контроллеров. Делаем на базе предыдущего примера. Выполним:

php artisan make:controller ProductsController

Создался файл Http/Controllers/ProductsController.php с пустым классом ProductsController, порождённым от класса Controller. Вынесем логику из файла маршрутов и поместим в класс ProductsController, вот что получится:

use App;
class ProductsController extends Controller
{
    function showAll() {
        $products = App\Product::showAll();
        return view('products', ['products' => $products]);
    }

    function showAlphabetically() {
        $id = App\Product::find($id);
        return view('products', ['products' => $products]);
    }

    function showCountMore($value) {
        $products = App\Product::showCountMore($value);
        return view('products', ['products' => $products]);
    }
}

Кстати, незабудьте добавить строку "use App;", иначе не будет работать.

Но если мы вынесли логику, как нам теперь правильно прописать маршруты? Ну вот как-то так:

Route::get('products', 'ProductsController@showAll');
Route::get('products/sort', 'ProductsController@showAlphabetically');
Route::get('products/more/{value}', 'ProductsController@showCountMore');

Как мы видим, всё элементарно просто. Каждому URL мы задаём соответствующий метод класса контроллера ProductsController.

Однако на этом тема контроллеров в Laravel явно не раскрыта. Она достаточно объёмная. Пока мы рассмотрели лишь основы.


Отправить комментарий
Наши проекты
Cj - язык программирования (C++ & Javascript)
Новый язык программирования, для разработки веб, мобайл, десктоп-приложений, игр... подробнее...
Контакты
vk.com/sitev_ru
Skype: sitev.ru
E-mail: mike@sitev.ru
github.com/sitev

Рейтинг@Mail.ru

Besucherzahler
счетчик посещений