Laravel视图indexpublic.blade.php报$teambatter未定义错误如何解决
问题原因
你在ProductController的indexpublic方法中虽然查询了$teambatter的数据,但没有将该变量传入视图,导致模板渲染时识别不到该变量。
解决步骤
- 修改
ProductController的indexpublic方法,在compact中加入teambatter变量,将数据传递给视图:
public function indexpublic() { $teambatter = Teambatter::latest()->paginate(20); $products = Product::latest()->paginate(20); return view('products.indexpublic',compact('products', 'teambatter')) ->with('i', (request()->input('page', 1) - 1) * 5); }
- 注意
$teambatter是分页多条数据集,无法直接调用->name属性,根据你的使用场景二选一调整:
- 如需展示所有
teambatter的名称,在indexpublic.blade.php中遍历集合即可:
@foreach($teambatter as $item) <h1>{{ $item->name }}</h1> @endforeach
- 如需仅获取最新的一条
teambatter数据,可将查询语句修改为:
// 替换原来的$teambatter = Teambatter::latest()->paginate(20); $teambatter = Teambatter::latest()->first();
调整后即可直接在模板中使用{{ $teambatter->name }}渲染名称。
内容的提问来源于stack exchange,提问作者Shahed Khan
相关产品推荐
相关产品推荐

