Как выполнить запрос в Laravel?

Как правильно выполнить такой запрос используя конструктор запросов Laravel?
SELECT * FROM `cards` INNER JOIN `mechanics_field` WHERE `mechanics_field`.`mechanics_id` = 1 AND `cards`.`id` = `mechanics_field`.`card_id` and `cards`.`cost` = 3
  • Вопрос задан
  • 219 просмотров
Решения вопроса 1
ubukulov
@ubukulov
Веб-разработчик
Во первых у вас в запросе ошибка. Она должно быть как-то так.
SELECT * FROM `cards` 
INNER JOIN `mechanics_field` ON `mechanics_field`.card_id=`cards`.id
WHERE `mechanics_field`.`mechanics_id` = 1 and `cards`.`cost` = 3


А этот же запрос в конструкторе Laravel:

$result = DB::table('cards')
	->join('mechanics_field', 'mechanics_field.mechanics_id', '=', 'cards.mechanic_id')
	->where(['mechanics_field.mechanics_id' => 1, 'cards.cost' => 3])
	->get();


А если имеется модель Card, то можно так написать:
$result = Card::where(['mechanics_field.mechanics_id' => 1, 'cards.cost' => 3])
			->select('cards.*')
			->join('mechanics_field', 'mechanics_field.mechanics_id', '=', 'cards.mechanic_id')
			->get();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы