Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Можно ли при помощи Query Builder делать несколько селектов в оном запросе? К примеру есть две таблицы:
tablepost:
id
post
title
cat_id
тут что типa:
select from tablecat where(’tablecat.cat_id’, ’=’,tablepost.cat_id AS cat1’ );
select from tablecat where(’tablecat.cat_id’, ’=’,cat1t.parent AS cat2’ );
—>get();
Суть в том чтобы получить родительскую категорию poct.cat_id:
Изменено bibimoto (05.07.2016 22:00:16)
Не в сети
Можно, но какой в этом смысл.
Только для того что бы получить родительскую категорию не нужно несколько селектов, нужен join.
(Очень туманно составлен, но если я правильно понял то вы хотите получать родительскую и просто категорию вместе с постом)
Если нужен просто запрос то это будет что-то вроде такого:
"select tp.*, tc.cat_id, tc.name, tc2.cat_id, tc2.name
from tablepost tp
join tablecat tc on tablepost.cat_id = tc.id
join tablecat tc2 on tc.parent = tc2.id
where tp.id = 'id поста' "
Лучше используйте отношения между моделями для этих целей.
https://laravel.com/docs/5.2/eloquent-r … -relations
Присоединяюсь к CarlyleV. Зачем вы используете Laravel, если при этом хотите лепить тонны raw запросов? Изучите ORM.
Не в сети
Иногда имеет смысл лепить тонны raw запросов)
К примеру когда у вас очень большие объемы и количество этих запросов то activeRecord
Показывает себя не с лучшей стороны.
Но это явно не тот случай.
Можно, но какой в этом смысл.
Только для того что бы получить родительскую категорию не нужно несколько селектов, нужен join.
(Очень туманно составлен, но если я правильно понял то вы хотите получать родительскую и просто категорию вместе с постом)
Если нужен просто запрос то это будет что-то вроде такого:"select tp.*, tc.cat_id, tc.name, tc2.cat_id, tc2.name from tablepost tp join tablecat tc on tablepost.cat_id = tc.id join tablecat tc2 on tc.parent = tc2.id where tp.id = 'id поста' "
Лучше используйте отношения между моделями для этих целей.
https://laravel.com/docs/5.2/eloquent-r … -relations
Да что то вроде этого спасибо.
Я начал писать используя Query Builder. Я немного понимаю как работают отношения они бы тут подошли если надо было вытащить к примеру одну категорию или даже несколько.
Но как они могут помочь вытащить родительские категории?
Не в сети
Пол года не смотрел в документацию но если я не ошибаюсь то
в описании модели поста должно быть что то вроде такого
public function parent()
{
return $this->belongsTo('App\Category', 'foreign_key', 'other_key');
}
в свою очередь у модели категории должен быть аналогичный метод получения родителя в своей же модели
public function parent()
{
return $this->belongsTo('Category', 'parent_id');
}
public function children()
{
return $this->hasMany('Category', 'parent_id');
}
таким образом вы можете получить доступ из поста к категории к которой он принадлежит, а оттуда доступ к родительским и дочерним категориям.
Все это есть в документации, для вас она даже на русском языке на этом сайте. Так что прочитайте ее вдумчиво или просто прочитайте несколько раз и многие вопросы отпадут (хотя несомненно появится много новых).
Спасибо. Почитаю на досуге.
Не в сети
Страницы 1