#laravel #model-view-controller
#ларавель #модель-представление-контроллер
Вопрос:
Насколько я знаю, если представление хочет получить доступ к модели, оно должно передать контроллер в концепции MVC.
И я написал такой код, как показано ниже
@php
$topik_speaker = AppTopikSpeaker::with('get_topik')->where('id_pembicara',$e->id)->get();
@endphp
@foreach ($topik_speaker as $k)
<span class="badge badge-pill badge-sm badge-primary" style="background-color: #51b3f9">{{ $k->get_topik['topik'] }}</span>
@endforeach
Нарушает ли это правило концепции MVC или нет?
Комментарии:
1. Нет, я думаю, что это плохая идея — получать доступ к модели непосредственно через часть просмотра.
2. Запросы к базе данных определенно не должны быть частью представления. Запросы к базе данных и другие операции с данными должны выполняться в методах контроллера, а переменные, содержащие данные, необходимые для отображения, должны передаваться для просмотра из контроллера. Насколько это возможно, представления должны отвечать только за отображение данных.
Ответ №1:
Вы должны возвращать данные из модели или базы данных в вашем контроллере, например:
public function show()
{
$data = User::all();
return view('yourview')->with('data', $data);
}
В представлении вы получаете это, обращаясь к like:
@foreach($data as $user)
{{ $user->name }}
@endforeach