Laravel: Как получить счет из двух таблиц? - PullRequest
1 голос
/ 27 мая 2020

У меня две таблицы.

первая таблица:

- name_id
- name

вторая таблица:

- counter_id
- name_id
- counter

и я сделал количество кнопок (1) с щелчок. означает, что если я нажму, чтобы суммировать, он вставит '1' в счетчик БД и, наконец, я хочу, чтобы результат был

peter 4
sam 3

, мой код

$data = DB::table('name')
       ->join('counters', 'counters.name_id', '=', 'name.name_id')
       ->select('name.name', 'counters.name_id') 
       ->get();

         return $data;

и теперь результат

[
    {
        "name": "peter ",
        "name_id": 1
    },
    {
        "name": "peter ",
        "name_id": 1
    },
    {
        "name": "peter ",
        "name_id": 1
    },
    {
        "name": "sam",
        "name_id": 2
    }
]

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Решил таким образом

        ->join('counters', 'counters.name_id', '=', 'name.name_id')
        ->select('name.name', DB::raw('Count(counters.name_id)'))
        ->groupBy('name.name')
        ->get();      
       ``` 
0 голосов
/ 27 мая 2020

Вы можете сделать что-то подобное, используя collection на laravel.

$data = [
    [
        "name" => "peter ",
        "name_id" => 1
    ],
    [
        "name" => "peter ",
        "name_id" => 1
    ],
    [
        "name" => "peter ",
        "name_id" => 1
    ],
    [
        "name" => "sam",
        "name_id" => 2
    ]
];

collect($data)->groupBy('name_id')->map(function($items) {
  return [
     'name' => $items[0]['name'],
     'total' => count($items)
  ];
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...