@Barney_Gubmle

Что должно быть в моделях laravel?

Доброго времени суток.
изучая Laravel задался вопросом "а правильно ли я изучаю?".
Буду краток.
Что должно храниться в моделях?
Поидее в моделях должно быть обращение к БД. Но я в контроллере реализовал обращение к БД следующим образом:
use App\Modelname;
// у Модели имя аналогичное таблице

class A extends Controller
{
     protected $list;

     public function __construct() 
     {
          $this->list = Modelname::all();
     }
}

И вот я задумался. Не является ли это "костылем"?
Пока в модель я залез всего два раза.
1public $timestamps = false;
2. protected $fillable = ['id', 'name', 'country'];
Вот такой вот вопрос.
Автор (V)(._.)(V)
  • Вопрос задан
  • 293 просмотра
Решения вопроса 1
@ivorobioff
Software Engineer
У тебя обращение к бд идет посредством модели так что это нормально. Не нормально то что это происходит в конструкторе контроллера
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@alvery
Backend Developer
В конструкторе у вас должны быть зависимости из контейнера или подгруженные из бд модели
route-model-binding
Если вам требуется реализовать CRUD с пагинацией - есть неплохая статья на эту тему (используя тот же route model binding для коллекций): laravel-route-collection-binding
Ответ написан
zhulan0v
@zhulan0v
В модели всё ок.

Конструктор в контроллере странноватый. Если $this->list нужен не во всех методах контроллера, то лучше это убрать из конструктора, в противном случае будет лишний запрос к БД.

Обычно в конструкторе описывают зависимости.
Ответ написан
@vos_50
Ну в моделях на самом деле много чего полезного можно указать помимо $timestamps и $fillable.
Например связи (1к1, 1 ко многим и тд), Scope, мутаторы, свои различные методы и т.д. В документации об этом все хорошо написано.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
MDO Москва
от 120 000 до 160 000 руб.
БАРС Груп Казань
от 60 000 до 130 000 руб.
Siberteam Москва
До 180 000 руб.