Laravel Blade视图中如何获取路由参数{item}的ID值?
解决Blade视图获取{item}对应ID的问题
首先,你的show方法已经通过路由模型绑定把对应的Item实例传递到视图里了,所以在Blade视图中直接访问这个实例的id属性就行:
{{ $item->id }}
补充说明:
- 你的路由
Route::get('/items/{item}', 'ItemsController@show');使用了Laravel的路由模型绑定,当访问/items/1这类URL时,Laravel会自动根据ID查找对应的Item模型实例,然后注入到show方法的$item参数中。 - 你在
show方法里用compact('item')把这个实例传给了视图,所以视图里已经存在$item变量,直接调用->id就能拿到对应的ID值。
顺便提一下你控制器的小问题:
你的index方法里有个明显的错误:
public function index() { $item = Post::get(); // get()返回的是Post模型的集合(多条记录) $price = $item->price; // 集合没有price属性,这里会抛出错误 return view('item'); }
如果index方法是要展示所有商品,建议把变量名改成$items(复数形式更语义化);如果是要展示单个商品,应该用find()或first()来获取单个模型实例。
内容的提问来源于stack exchange,提问作者Parzi
相关产品推荐
相关产品推荐

