Я разрабатываю приложение laravel последние пару месяцев, и это моя первая поездка с каркасом. Я также впервые обнимаю и использую ORM (Eloquent).Использование Eloquent в Laravel для более продвинутых запросов БД
По большей части, Eloquent кажется довольно прямым, когда выполняет базовые операции с БД. Однако, когда что-то становится немного сложнее, я часто нахожусь слишком много времени, пытаясь понять, как это сделать «Красноречивый», и прыгать с корабля на необработанные db-запросы.
Было надеяться, что кто-то может подумать о том, должен ли мой желаемый результат в более сложных запросах, таких как приведенный ниже, быть достигнут с помощью Eloquent довольно легко или что я должен просто продолжать использовать необработанные запросы БД.
Таблицы: продукты, пользователей, оповещения
оповещения имеют user_id
, product_id
, а amount
, в которой пользователь хотел бы получить уведомление о том, что продукт находится в продаже по определенной цене.
В настоящее время я использую сырой запрос дб, чтобы получить все предупреждения:
SELECT p.*, u.firstname, u.lastname, u.email, a.amount AS alert_amount
FROM alerts AS a
JOIN dods AS d ON a.product_id = d.product_id
JOIN products AS p ON d.product_id = p.id
JOIN users AS u ON u.id = a.user_id
WHERE a.amount <= p.saleprice1
Мои красноречивых модели устанавливаются с отношениями следующим
пользователя Модель
public function alerts()
{
return $this->hasMany('Alert');
}
Модель продукта
public function alerts()
{
return $this->hasMany('Alert');
}
оповещения Модель
public function product()
{
return $this->belongsTo('Product');
}
public function user()
{
return $this->belongsTo('User');
}
Спасибо за любые предложения. Мэтт
Прохладный. Так что это похоже на основную сторону вещей. На самом деле нужно выяснить, как получить оповещения, соответствующие критериям, и включить продукт и пользователя, привязанные к этому предупреждению. – user1462432