Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 09.02.2022 14:37:24

Посчитать количество строк в соседней таблице по идентификатору

Добрый день.
Подскажите пожалуйста как можно посчитать количество записей в соседней таблице по связующему столбцу

Предположим есть 2 таблицы

Пользователь
id
name
fio
address

Статьи
id
user_id
title
text

Как видно статьи с пользователем связаны полем user_id
Как я могу одним запросом через DB:: вывести список всех пользователей с количеством…

Не в сети

#2 09.02.2022 21:21:12

Re: Посчитать количество строк в соседней таблице по идентификатору

вывести список всех пользователей с количеством…


Как я могу одним запросом через DB:: вывести список всех пользователей с количеством написаных ими статей?
Пример: Вася(5), Леша(7), Володя(0) smile
Заранее благодарю за ответ!

Изменено sShpion (09.02.2022 21:21:55)

Не в сети

#3 16.02.2022 14:24:41

Re: Посчитать количество строк в соседней таблице по идентификатору

Здравствуйте.
Изучите сперва sql и если не можете написать запрос на laravel, то напишите sql"ьный запрос. За вас работу никто не хочет выполнять, могут только помочь.

select count(article.id) from article
left join users on users.id = article.user_id
where user.id = 666

Так мы получим ТОЛЬКО количество статей конкретного пользователя (666)
В ларавель, не помню как прописывается join, поэтому посылаю тебя сюда https://laravel.ru/docs/v5/queries#%D0% … 0%B8%D1%8F

Проще создать две модели User, Article. У юзера прописать связь

public function articles() {
       return $this->hasMany('App\User', 'user_id');
}

Пояснение
https://laravel.ru/docs/v5/eloquent-relationships#om

Получить пользователя со статьями по связи -

$users = User::with('articles')->where('столбец','значение')->get();
// И при выводе количество получаешь так - 
foreach($users as $key => $user){
    $user->articles->count();
}

Не в сети

Подвал раздела