Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
public function execute)
{
// написать отдельный (ПРИВАТНЫЙ) метод
$companies = $this->getCompanies();
или
//стандартная выборка из документации(СЫРАЯ)
$companies = Company::all();
или
//Создать репозиторий и там делать запрос в Бд, а сдесь(в Контроллере) работать с его Обьектом ?
$companies = $this->company_repository->getCompanies();
Если да то напишите пример !
return view('views.view-page', ['companies' => $companies]);
Заранее всем спасибо !;)
Изменено RunPhp (21.08.2019 16:31:33)
Не в сети
Твой конкретный пример не показателен. Слишком простая задача взять все записи из одной таблицы.
Логику уровня построения запросов выгодно выносить в репозитории или сервисы, как хочешь назови, чтобы скрыть детали реализации, сделать контроллеры проще и читабельнее и в итоге облегчить обслуживание проекта. В идеале метод контроллера содержит только валидацию (если она не вся в классе запроса), может быть проверку прав и обращение к вьюхе. Всё! Не надо там никаких цепочек eloquent или raw SQL. Должно быть разделение ответственности.
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
думаю в вашем случае без разницы
а если другой логики не будет то просто
$companies = Company::all();
зачем создавать репозиторий если там один запрос
Не в сети
Понятно, спасибо! Подскажите а где можно поюзать Примеры: Построения запросов в Репозиториях и сервисах ?
И хорошо пускай это будет не один запрос :
$companies = Company::all();
$countries = Country::all(array('name','id'));
$cities = City::all(array('name','id','country_id'));
Мне нужно создать:
1.CompanyRpository
2.CountryRpository
3.CityRpository
Далее Передать их Обьекты в конструкторе Контроллера
И в конструторе же присвоить значение protected свойств:
$this->companies = $company_repository->getAll();
$this->countries = $country_repository->getAll(array('name','id'));
$this->cities = $city_repository->getAll(array('name','id','country_id'));
Правильно размышляю ? ?
Изменено RunPhp (21.08.2019 23:38:08)
Не в сети
Я не знаю публично доступных примеров, но уверен что они есть. Так сложилось, что я учил это на практике в приватных проектах.
Ищи объемные учебные проекты. Как я писал выше, смысл в дополнительном слое появляется при нарастании сложности. Может быть тебе рано об этом думать
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети