Извините, что спрашиваю о такой простой вещи, но я не могу получить документацию (https://laravel.com/docs/9.x/queries#su ... re-clauses)
Я пишу что-то вроде функции социальной сети, поэтому у меня есть таблица сообщений и таблица пользователей, есть еще одна сводная таблица, в которой я храню пользователей, на которых подписан пользователь, и они работает очень хорошо.
Я хочу представить следующий SQL в ORM Laravel
SELECT * FROM mensajes
WHERE user_id=1
OR user_id IN (SELECT seguido_id FROM seguidos WHERE user_id=1)
Идея состоит в том, что я получаю сообщения пользователя, а также сообщения от пользователей, на которых подписан пользователь.
Мое следующее решение работает, но мне кажется, что это довольно грязно и должно решаться с помощью подзапроса
// this relation returns the users the user is following, ans works correctly
$seguidos = auth()->user()->seguidos;
// I store in an array the ids of the followed users
$seg = [];
foreach ($seguidos as $s) {
array_push($seg, $s->id);
}
array_push($seg, auth()->user()->id);
// Then I retrieve all the messages from the users ids (including self user)
$this->mensajes = Mensaje::whereIn('user_id', $seg)
->orderBy('created_at', 'desc')
->get();
Мне бы хотелось все изменить, чтобы использовать подзапросы, но я этого не понимаю
$this->mensajes = Mensaje::where('user_id', auth()->user()->id)
->orWhereIn('user_id', function($query) {
// ... what goes here?
// $query = auth()->user()->seguidos->select('id');
// ???? This doesn't work, of course
}
->orderBy('created_at', 'desc')
->get();
Подробнее здесь: https://stackoverflow.com/questions/730 ... -a-wherein
Как выразить подзапросы Laravel для использования вwhereIn ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1732838335
Anonymous
Извините, что спрашиваю о такой простой вещи, но я не могу получить документацию (https://laravel.com/docs/9.x/queries#subquery-where-clauses)
Я пишу что-то вроде функции социальной сети, поэтому у меня есть таблица сообщений и таблица пользователей, есть еще одна сводная таблица, в которой я храню пользователей, на которых подписан пользователь, и они работает очень хорошо.
Я хочу представить следующий SQL в ORM Laravel
SELECT * FROM mensajes
WHERE user_id=1
OR user_id IN (SELECT seguido_id FROM seguidos WHERE user_id=1)
Идея состоит в том, что я получаю сообщения пользователя, а также сообщения от пользователей, на которых подписан пользователь.
Мое следующее решение работает, но мне кажется, что это довольно грязно и должно решаться с помощью подзапроса
// this relation returns the users the user is following, ans works correctly
$seguidos = auth()->user()->seguidos;
// I store in an array the ids of the followed users
$seg = [];
foreach ($seguidos as $s) {
array_push($seg, $s->id);
}
array_push($seg, auth()->user()->id);
// Then I retrieve all the messages from the users ids (including self user)
$this->mensajes = Mensaje::whereIn('user_id', $seg)
->orderBy('created_at', 'desc')
->get();
Мне бы хотелось все изменить, чтобы использовать подзапросы, но я этого не понимаю
$this->mensajes = Mensaje::where('user_id', auth()->user()->id)
->orWhereIn('user_id', function($query) {
// ... what goes here?
// $query = auth()->user()->seguidos->select('id');
// ???? This doesn't work, of course
}
->orderBy('created_at', 'desc')
->get();
Подробнее здесь: [url]https://stackoverflow.com/questions/73093716/how-to-express-larvel-subqueries-to-use-within-a-wherein[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия