未定义的索引:什么?

时间:2018-04-16 18:09:33

标签: php laravel

当我转到页面时,我收到错误:"Undefined index : img"。 当我使用var_dumpprint_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

1 个答案:

答案 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]);