У меня есть этот запрос в Laravel:Получить более чем один или все свойства объединения: SELECT, COUNT, OrderBy
$filmxlanguages =DB::table('films')
->join('languages', 'languages.id', '=", 'films.language_id')
->select('languages.language', DB::raw('count(*) as total'))
->orderBy('languages.language')
->get();
И это работает отлично отдавая имя языка (languages.languages и всего фильмов про язык) в виде простой таблицы, как этот
<table>
<thead>
<th>Language</th>
<th>Number of films</th>
</thead>
<tbody>
@foreach ($filmxlanguage as $language)
<tr>
<td> {{ $language->language}}</td>
<td> {{ $language->total}}</td>
</tr>
@endforeach
</tbody>
</table>
Теперь я хочу провести еще свойства, чтобы добавить столбец к моему столу, как: language-> изображение и добавить ссылку с помощью слизняка, что у меня есть в базе данных подобные
<td> <a href ="{{ route('language.show', $language->slug)}}">{{ $language->language}}</a></td>
Я добавил два свойства Выбор без успеха, как, что:
$filmxlanguages =DB::table('films')
->join('languages', 'languages.id', '=", 'films.language_id')
->select('language.slug', language.image', 'languages.language',
DB::raw('count(*) as total'))
->orderBy('languages.language')
->get();
Как это получить больше, чем один или все свойства в Laravel с помощью SELECT, и COUNT?
EDIT:
Я изменил код так:
$filmsxlanguage = DB::table('films')
->join('languages', 'languages.id', '=', 'films.language_id')
->select('*', DB::raw('count(*) as total'))
->groupBy('languages.language')
->get();
Но это не работает
мне нужно в общей сложности для того, чтобы использовать его в передней части. Поэтому я использовал -> select ('*', DB :: raw ('count (*) как total')); но он возвращает ошибку: QueryException SQLSTATE [42000]: ошибка синтаксиса или нарушение прав доступа: 1055 «mykino.films.id» не находится в GROUP BY ... –
Я вижу, что вы пропустите апостроф в своем построителе запросов, проверьте его снова скажите мне. – Davuz
Нет, это не сработало. Я добавил полученный код в EDIT в вопросе –