如何从视图中使用模型函数? - laravel 5.4

Mas*_*sum 5 php model function laravel eloquent

我把功能变成了模型类

public function scopetest($query)
    {
 return $query->pluck('name');
    }
  }
Run Code Online (Sandbox Code Playgroud)

我的控制器代码是

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

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

       }
Run Code Online (Sandbox Code Playgroud)

获取test()函数结果我写了我的视图文件

@foreach($books as $book)

 {{$book->test()}}

@endforeach
Run Code Online (Sandbox Code Playgroud)

但问题是,当我访问此页面时,它将显示"名称"字段值3次.为什么它显示3次?如何从视图中调用模型函数?什么是正确的过程?请帮助查看结果

Sag*_*ora 8

有许多方法可以在视图中调用模型函数.

方法1:

通过一些模态在控制器中查看,如:

$model = Model::find(1);
View::make('view')->withModel($model);
Run Code Online (Sandbox Code Playgroud)

在modal中创建一些函数:

  public function someFunction() {
   // do something
  }
Run Code Online (Sandbox Code Playgroud)

在视图中,您可以直接调用此函数:

{{$model->someFunction()}}
Run Code Online (Sandbox Code Playgroud)

方法2或其他方式:

您可以在模型中创建静态函数,如:

public static function someStaticFunction($par1, $par2) {
   // do what you need
}
Run Code Online (Sandbox Code Playgroud)

在您的视图中,您可以直接将函数建模为:

{{App\Model::someStaticFunction($par1,$par2)}}
Run Code Online (Sandbox Code Playgroud)