При вызове функции Controller в блейде / представлении Laravel 5.6 я получаю следующее сообщение об ошибке:
Метод Illuminate \ Database \ Query \ Builder :: show не существует
Я не могу найти, где находится ошибка или источник этой ошибки.Я прочитал десятки постов здесь с той же ошибкой, но ни один из них не был связан с кодом / контекстом / типом моделей / контроллеров (...), которые у меня есть.
Вид блейда, где отображается сообщение об ошибке.
Блейд
@foreach (\App\Portfolio::show() as $port)
<option value="{{$port->id_portfolio}}">{{$port->name}}</option>
@endforeach
Контроллер
class PortfolioController extends Controller
{
public function show()
{
$portfolio = \App\Portfolio::where([
['flg_active', '=', true],
['id_user', '=', Auth::user()->id]
])->get();
return $portfolio;
}
}
Модель
class Portfolio extends Model
{
public function transaction()
{
return $this->hasMany('App\Transaction', 'id_portfolio', 'id_portfolio');
}
public function user()
{
return $this->belongsTo('App\User', 'id_user', 'id');
}
}
Тестирование со всеми () вместо show (), и это работает.