У меня есть код в контроллере как

$messages['msg']  =  DB::table('contactus')->where('email',Auth::user()->email)->get();
   return view('contactmessages')->with($messages);

И в лезвии

 @foreach($msg as $key => $message)
      <tr>
                  <th>{{$message->id}}</th>
                  <th>{{$message->message}}</th>
                  <th>{{$message->asked_on}}</th>
                  <th>{{$message->answered_on}}</th>
                  <th>{{$message->status}}</th>
              </tr>

            @endforeach

Итак, по сути, я отправляю массив данных, доступ к которым осуществляется по его ключу (в данном случае это msg), который был преобразован в переменную. Это верно?

1
Skumar 10 Ноя 2020 в 12:46

2 ответа

Лучший ответ

Вы можете использовать compact () вместо with ():

$messages  =  DB::table('contactus')->where('email',Auth::user()->email)->get();

return view('contactmessages', compact('messages'));

И лезвие могло быть

@foreach($messages as $item)
  <tr>
              <th>{{$item->id}}</th>
              <th>{{$item->message}}</th>
              <th>{{$item->asked_on}}</th>
              <th>{{$item->answered_on}}</th>
              <th>{{$item->status}}</th>
  </tr>

@endforeach
1
ُSeyed Hossein Hosseini Taheri 10 Ноя 2020 в 10:01

Ответ скопирован из Здесь для моей справки

Массив : вы можете передавать в представления массив данных, например:

return view('post', ['post' => $post]); При передаче информации таким образом данные должны быть массивом с парами ключ / значение. Затем в вашем представлении вы можете получить доступ к каждому значению, используя соответствующий ему ключ, например <?php echo $key; ?>

with () . В качестве альтернативы передаче полного массива данных вспомогательной функции представления вы можете использовать метод with для добавления отдельных фрагментов данных в представление:

return view('post')->with('post' => $post);
// multiple with method
return view('post')->with('post' => $post)->with('comment' => $comment);

compact () : вместо этого типа передачи данных вы можете использовать compact () для передачи данных. compact () - это встроенная функция php, которая позволяет вам создавать массив с именами переменных и их значениями. Имена переменных должны быть переданы в компактную функцию в качестве строкового аргумента, а затем вы получите массив, поэтому компактная передача varibale в вашем представлении, как первый метод:

return view('post', compact('post'));
// same as
return view('post', ['post' => $post]);
0
sta 10 Ноя 2020 в 09:56