Я хочу получать сообщения чата из базы данных, используя laravel - PullRequest
1 голос
/ 14 февраля 2020

Я пытаюсь получить сообщения чата из базы данных. К сожалению, я не могу получить сообщения чата, потому что у меня ошибка. Как я могу это исправить? Пожалуйста, помогите мне, спасибо.

    please see this error
    https://flareapp.io/share/v5pll05E#F52

Текущий статус

            {"id":12,"name":"Faraz","email":"faraz01@gmail.com",
           "email_verified_at":null,"job":null,"phone_number":null,
           "profile_image":null,"created_at":"2020-02-14 04:35:07","updated_at":"2020-02-14 
            04:35:07","chats":[{"id":1,"to_user_id":12,"from_user_id":13,"chat_message":"Hi 
            Well come to horizon technology","timestamp":"2020-02-12 17:54:55"}]}

Пользовательский модальный

            class User extends Authenticatable
            {
            public function Chats()
            {
            return $this>hasMany('App\Chat_message','to_user_id','id');
            }

Модель сообщения чата

            class Chat_message extends Model
            {  
            public function user()
            {
            return $this->belongsTo('App\User','id');
            }

Контроллер

             public function chat($id)
             {      
             $single_chat = User::with('Chats')->where('id',$id)->first();

             // return $single_chat;          
              return view('single_chat',compact('single_chat'));
              } 
              }

Html просмотр

              @foreach($single_chat as $single_chats)
              <!-- Message to the right -->
              <div class="direct-chat-msg right">
              <div class="direct-chat-infos clearfix">
              <span class="direct-chat-name float-right">Sarah Bullock</span>
              <span class="direct-chat-timestamp float-left">23 Jan 6:10 pm</span>
              </div>
              <!-- /.direct-chat-infos -->
             <img class="direct-chat-img" src="{{url('public/assets/dist/img/user1- 
             128x128.jpg')}}" alt="message user image">
             <!-- /.direct-chat-img -->
             <div class="direct-chat-text">
             {{$single_chats->chat_message}}
             </div>
             <!-- /.direct-chat-text -->
             </div>
             <!-- /.direct-chat-msg -->
             </div>
             <!--/.direct-chat-messages-->
             @endforeach

1 Ответ

1 голос
/ 14 февраля 2020

Задача 1:
В вашем контроллере вы используете ...->first(), поэтому вы получаете только одну модель, а не коллекцию, поэтому вы не можете l oop ее с @foreach l oop внутри вашего представления.

@foreach($single_chat as $single_chats) должно быть @foreach($single_chat->chats as $chat), так что вы можете l oop через chat_message одного пользователя.

Проблема 2:
Внутри l oop вы пытаетесь получить chat_message от $single_chats следующим образом {{$single_chats->chat_message}}
Если вы используете {{$chat->THE_MESSAGE_PROPERTY}}, это должно работать, потому что мы исправили ошибку l oop в задаче 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...