как использовать функцию модели из вида? — Laravel 5.4

я сделал функцию в класс модели, которая

public function scopetest($query)
{
return $query->pluck('name');
}
}

и мой код контроллера

 public function index()
{
$books = Book::all();

return view('welcome',compact('books'));

}

чтобы получить результат функции test () я написал свой файл вида

@foreach($books as $book)

{{$book->test()}}

@endforeach

но проблема в том, что когда я захожу на эту страницу, она показывает значение поля «имя» 3 раза. почему это показывают 3 раза? как вызвать функцию модели из вида? & каков правильный процесс? пожалуйста, помогите пожалуйстапосмотреть результат

4

Решение

Существует много способов вызова функции модели в представлении.

Способ 1:

Передайте некоторые модальные для просмотра в вашем контроллере, как:

$model = Model::find(1);
View::make('view')->withModel($model);

В модальном режиме создайте некоторую функцию:

  public function someFunction() {
// do something
}

В связи с этим вы можете вызвать эту функцию напрямую как:

{{$model->someFunction()}}

Способ 2 или другой способ:

Вы можете сделать статическую функцию в модели, например:

public static function someStaticFunction($par1, $par2) {
// do what you need
}

И, на ваш взгляд, вы можете моделировать функцию непосредственно как:

{{App\Model::someStaticFunction($par1,$par2)}}
7

Другие решения

Сфера должна быть scopeTest() (CamelCase).

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector