Laravel 5 call a model function in a blade view
I solve the problem. So simple. Syntax error.
- App\Product
- App\Service
But I also want to know how to pass a function with parameters to view....
want to use model in view as:
{{ Product::find($id) }}
you can use in view:
<?php
$tmp = \App\Product::find($id);
?>
{{ $tmp->name }}
Hope this will help you
Related to the question in your answer:
You have multiple options to achieve this that are way better:
Let's assume you have a model which you pass to the view:
$model = Model::find(1);
View::make('view')->withModel($model);
Now in your Model you could have a function:
public function someFunction() {
// do something
}
In your view you could call that function directly:
{{$model->someFunction()}}
This is nice if you want to do something with the model (the dataset).
If not you can still make a static function in the model:
public static function someStaticFunction($var1, $var2) {
// do something
}
And then:
{{App\Model::someStaticFunction($yourVar1,$yourVar2)}}
Hope it helps.
In new version of Laravel you can use "Service Injection".
https://laravel.com/docs/5.8/blade#service-injection
/resources/views/main.blade.php
@inject('project', 'App\Project')
<h1>{{ $project->get_title() }}</h1>