php - Laravel 错误:方法 Illuminate\Database\Query\Builder::show 不存在
问题描述
在 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');
}
}
使用 all() 而不是 show() 进行测试,它可以工作。
解决方案
在Blade中,您调用模型。而你需要的方法在控制器 PortfolioController
投资组合控制器
public static function show()
刀
@foreach (\App\PortfolioController ::show() as $port)
<option value="{{$port->id_portfolio}}">{{$port->name}}</option>
@endforeach
推荐阅读
- magento - 将 Magento 1.9 移动到新服务器后出现“无效的用户名或密码”错误
- ruby-on-rails - 嵌套表单has_one没有设置表单属性rails 4
- python - return 语句中带有“或”的时间复杂度
- azure - 是否可以使用文件名模式创建一个 blob 触发的 azure 函数?
- typescript - 在 Playground 上的 TypeScript 中使用 OrbitControls
- c++ - C++ win表单如何在文本框中打印出一个void *?
- javascript - 在 javascript 中访问会话属性
- android - 当手机屏幕关闭或休眠时,片段布局退出我的应用程序
- jquery - 使用 jspdf 和 html2canvas 将包含图像的 html 页面下载到 pdf
- c# - 静态属性作为该类的实例的线程安全注意事项