Laravel:选择数据库错误未定义的索引或尝试获取非对象的属性

时间:2017-03-01 09:54:24

标签: php mysql laravel laravel-5 laravel-5.3

第一个Laravel项目。我有一个DBController,它在url之后从数据库中选择一行(例如,URL是/ product / 123,然后它搜索条形码为123的产品)。我想在下一页上创建一个关于productdetails的表格。

控制器:

class ProductDetailsController extends Controller
{
    public function product($id){
    $product = DB::select('select * FROM inventory WHERE barcode = ?', [$id]);;
    return view('productdetails',['product'=>$product]);
    }
}

print_r($ product)输出:

  

数组([0] => stdClass对象([ID] => 1 [条形码] => 01233 [品牌]   => Ismeretlen [供应商] => 1 [type] => Építésianyag[name] => Homok [img] => homok.jpg [wholeprice] => 3000 [price] => 5500 [VAT] => 3   [whereis] => U [whereis2] => 1 [count] => 8 [dimension] => M3   [threshold] => 1 [lastsell] => [lastbuy] => [lastchange] => 2017年2月23日   20:56:46 [register] => ))

如果我尝试{{ $product->brand }}我得到了:

  

20d205ed160f36c734b8252e44ac81bfa0977988.php第6行中的ErrorException:   试图获得非对象的属性(查看:   /var/www/html/project/laravel/leltar/resources/views/productdetails.blade.php)

如果我尝试{{ $product['brand'] }}我得到了:

  

20d205ed160f36c734b8252e44ac81bfa0977988.php第6行中的ErrorException:   未定义的指数:品牌(查看:   /var/www/html/project/laravel/leltar/resources/views/productdetails.blade.php)

出了什么问题?

我从this PDF

学习Laravel

3 个答案:

答案 0 :(得分:3)

一旦检查了数组的结构,它首先有第0个索引,

你应该得到它,

{{$product[0]->brand}}

OR

$product = DB::table("inventory")->where("barcode", $id)->first();
// and get data as
echo $product->brand;

试一试,它应该有用。

答案 1 :(得分:0)

$product = DB::select('select * FROM inventory WHERE barcode = ?', [$id])->first();

dd($product);

答案 2 :(得分:0)

你应该用雄辩的模型来做,创建一个像这样的库存模型 $产品=库存::其中( '编号',$ ID) - >首先();

您可以获得品牌$ products->品牌。