Laravel通过id读取表数据

时间:2018-01-09 13:38:43

标签: php html mysql laravel

错误

  

尝试获取非对象的属性

我的新项目遇到了问题。我之前从最近的项目中尝试过这些代码并且它有效,但它对我的新项目没有任何作用。 不同之处在于:在我的旧项目中,我使用过' id'作为表格的主键,在我的新项目中,我使用了&produ;产品'作为表格的主键。

它可以读取我选择的特定项目ID。

我尝试过使用Products :: where(' id',$ id);但它不会工作

控制器:

   public function showDetail($id)
        {
            $products = Products::find($id);
            return view('sectiondetail', ['products' => $products], compact('products'));
        }

查看:

@foreach($products as $product)
<div class="productdetail">
    <div id="thumbnail">
        <img src="{{ $product -> productpicture }}">
    </div>
    <div id="productdescription">
        <div id="name">{{ $product -> productname }}</div> <br>
        <div>
            <b>Ingredients:</b> {{ $product -> productdescription }}
        </div> <br>
        <button class="sim-button button24">Book</button>
    </div>
</div>
@endforeach

1 个答案:

答案 0 :(得分:8)

$primaryKey添加到Products模型:

protected $primaryKey = 'productid';

然后这个查询将通过它的ID获取产品:

$product = Products::find($id);

来自the docs

  

Eloquent还会假设每个表都有一个名为id的主键列。您可以定义受保护的$primaryKey属性以覆盖此约定

然后只需使用该对象获取数据(无需迭代$product):

{{ $product->productname }}