当我转到页面时,我收到错误:"Undefined index : img"
。
当我使用var_dump
或print_r
函数时,我可以看到整个数组,一切正常。
我的web.php
Route::get('/Products/{id}','productcontroller@show');
我的控制器
public function show($id)
{
$products = DB::select("SELECT * FROM products where id=$id");
return view("productpage" ,["products"=> $products]);
}
我的刀片视图
@extends("master")
@section("mainpage")
<div class="container">
<img src="{{$products["img"]}}">
<p>{{$products["description"]}}</p>
<p>{{$products["price"]}}</p>
</div>
@endsection
答案 0 :(得分:4)
发生错误是因为DB::select
返回一个iterable(在5.3之前的Laravel版本和更高版本的Collection中的数组)
它只是一个结果并不重要 - 它仍然是一个包含单个值的数组或集合。
您必须在循环中显示它,或者按索引$products[0]['img']
显示第一个产品元素
此外,您的代码易受SQL注入攻击。请考虑使用prepared statements来避免这种情况。
将此问题应用于您的查询,如下所示
$products = DB::select("SELECT * FROM products where id = :id", ['id' => $id]);