Я использую главную страницу, и в заголовке есть ряд непрочитанных сообщений. Код главной страницы:
<li class="nav-item dropdown">
<a href="{{url('chat-room')}}" target="_blank" role="button">
<span class="adminpro-icon adminpro-chat-pro"></span>
<span class="indicator-ms">
@php $totlUnread = 0; @endphp
@foreach($chatusers as $chatuser)
@if($chatuser->unread)
@php $totlUnread+=$chatuser->unread; @endphp
@endif
@endforeach
@if($totlUnread == 0)
@php echo "<span class='pending'></span>"; @endphp
@else
@php echo "<span class='pending'>$totlUnread</span>"; @endphp
@endif
</span>
</a>
</li>
когда мне нужно передать это значение (пользователи) во все представления, я создаю представлениеСоставьте и передайте данные через него.
public function boot()
{
$chatusers = DB::select("select users.id, users.name, users.email, count(is_read) as unread
from users LEFT JOIN messagesnews ON users.id = messagesnews.from and is_read = 0 and messagesnews.to = " . Auth::id() . " where users.id != " . Auth::id() . "
group by users.id, users.name, users.email");
View::share('chatusers', $chatusers);
}
, но выдайте мне ошибку
SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 У вас есть ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования рядом с 'где users.id! = group by users.id, users.name, users.email' в строке 3 (SQL: выберите users.id, users.name, users.email, считайте (is_read) как непрочитанное от пользователей. ВЛЕВО ПРИСОЕДИНЯЙТЕСЬ сообщения, users.email)
, когда я использую SQL-запрос в любом контроллере, он работает очень хорошо, но в View Composer выдает ошибку.