@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)
  • Вопрос задан
  • 394 просмотра
Пригласить эксперта
Ответы на вопрос 3
@alvery
Backend Developer
В конструкторе у вас должны быть зависимости из контейнера или подгруженные из бд модели
route-model-binding
Если вам требуется реализовать CRUD с пагинацией - есть неплохая статья на эту тему (используя тот же route model binding для коллекций): laravel-route-collection-binding
Ответ написан
Комментировать
zhulan0v
@zhulan0v
В модели всё ок.

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

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

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

Похожие вопросы