можно ли получить доступ к модели из представления в концепции MVC?

#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