Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте!
Пытаюсь вот осваивать Laravel 8. Появился вопрос, может быть поможете ... Я написал работающий код:
$id = Auth::User()->id;
$orderCount = DB::table('orders')
->join('order_products', 'order.id', '=', 'order_products.order_id')
->where('status', '=', 0)
->where('user_id', '=', $id)
->count();
Можно ли как-то вместо построителя запросов относительно таблиц - написать тоже самое, но через отношение моделей? Вообще возможно ли такое? В смысле - чтобы имена таблиц тут не светились в явном виде.
Не в сети
Через отношения или чтобы имена не светились? Это разные задачи.
Если буквально хочешь использовать отношения, то смотри в доках методы with, withCount. Это не равноценно join, т.е. будет другой запрос, но цель возможно будет достигнута.
Если надо взять имя таблицы из определения класса-модели, то сам Тейлор совтует делать так: with(new Model)->getTable();
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
Через отношения или чтобы имена не светились? Это разные задачи.
Ну да. Но, как я понял, "из коробки" это невозможно. Видимо не я один задавался этим вопросом. Вот нашел внешний проект, который похоже делает это. Увы, немного поздновато мне, но на будущее - запомнил.
Не в сети
Если надо взять имя таблицы из определения класса-модели, то сам Тейлор совтует делать так: with(new Model)->getTable();
Норм!
Не в сети
Страницы 1