я сделал функцию в класс модели, которая
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 раза? как вызвать функцию модели из вида? & каков правильный процесс? пожалуйста, помогите пожалуйста
Существует много способов вызова функции модели в представлении.
Способ 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)}}
Сфера должна быть scopeTest()
(CamelCase).