Laravel по-русски

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

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

#1 21.08.2019 16:30:22

Правильная выборка из Базы Данных (Посоветуйте как лучше)

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)

Не в сети

#2 21.08.2019 17:32:23

Re: Правильная выборка из Базы Данных (Посоветуйте как лучше)

Твой конкретный пример не показателен. Слишком простая задача взять все записи из одной таблицы. smile

Логику уровня построения запросов выгодно выносить в репозитории или сервисы, как хочешь назови, чтобы скрыть детали реализации, сделать контроллеры проще и читабельнее и в итоге облегчить обслуживание проекта. В идеале метод контроллера содержит только валидацию (если она не вся в классе запроса), может быть проверку прав и обращение к вьюхе. Всё! Не надо там никаких цепочек eloquent или raw SQL. Должно быть разделение ответственности.


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#3 21.08.2019 18:44:18

Re: Правильная выборка из Базы Данных (Посоветуйте как лучше)

думаю в вашем случае без разницы
а если другой логики не будет то просто
$companies  = Company::all();
зачем создавать репозиторий если там один запрос

Не в сети

#4 21.08.2019 23:12:12

Re: Правильная выборка из Базы Данных (Посоветуйте как лучше)

Понятно, спасибо! Подскажите а где можно поюзать Примеры:  Построения запросов в Репозиториях и сервисах ?
   И хорошо пускай это будет не один запрос :
       
        $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'));

Правильно размышляю ? roll ?

Изменено RunPhp (21.08.2019 23:38:08)

Не в сети

#5 23.08.2019 08:34:59

Re: Правильная выборка из Базы Данных (Посоветуйте как лучше)

Я не знаю публично доступных примеров, но уверен что они есть. Так сложилось, что я учил это на практике в приватных проектах.
Ищи объемные учебные проекты. Как я писал выше, смысл в дополнительном слое появляется при нарастании сложности. Может быть тебе рано об этом думать smile


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

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