【问题标题】:Laravel: Select DB error Undefined index or Trying to get property of non-objectLaravel:选择数据库错误未定义索引或尝试获取非对象的属性
【发布时间】:2017-07-20 14:09:23
【问题描述】:

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

控制器:

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) 输出:

Array ( [0] => stdClass Object ( [ID] => 1 [barcode] => 01233 [brand] => Ismeretlen [供应商] => 1 [类型] => Építésianyag [名称] => Homok [img] =>homok.jpg [wholeprice] => 3000 [price] => 5500 [VAT] => 3 [whereis] => U [whereis2] => 1 [count] => 8 [dimension] => m3 [门槛] => 1 [lastsell] => [lastbuy] => [lastchange] => 2017-02-23 20:56:46 [注册] => ) )

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

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

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

20d205ed160f36c734b8252e44ac81bfa0977988.php 第 6 行中的错误异常: 未定义索引:品牌(查看: /var/www/html/project/laravel/leltar/resources/views/productdetails.blade.php)

怎么了?

我从this PDF学习 Laravel

【问题讨论】:

    标签: php mysql laravel laravel-5 multidimensional-array


    【解决方案1】:

    你应该用雄辩的模型来做,创建一个这样的库存模型 $products=Inventory::where('id',$id)->first();

    你可以获得品牌 $products->brand。

    【讨论】:

      【解决方案2】:

      试试

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

      【讨论】:

        【解决方案3】:

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

        你应该得到它,

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

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

        试一试,应该可以的。

        【讨论】:

        • 谢谢,第一种方法我试过了,效果很好。我也会尝试第二种方法 :) 该网站还需要 8 分钟才能接受您的回答
        • @NeetinSolanki 我会接受它,但是当我点击复选标记时,它会显示“您可以在 3 分钟内接受答案”。
        猜你喜欢
        • 2018-09-26
        • 1970-01-01
        • 1970-01-01
        • 2015-09-22
        • 1970-01-01
        • 2020-04-02
        • 2022-06-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多