【发布时间】:2024-05-16 12:50:01
【问题描述】:
我不知道如何从这个外键中获取数据。我已按照文档中的所有步骤进行操作,但我仍然不知道需要做什么。
这是我的产品型号:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
public function sector(){
return $this->hasOne('App\Sector');
}
public function sale(){
return $this->hasOne('App\Sale');
}
}
这是我的部门模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Sector extends Model
{
protected $primaryKey = 'products_id';
public function product(){
return $this->belongsTo('App\Product');
}
}
这是我的控制器(仅索引):
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Product;
use App\Sector;
class ProductController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$products = Product::all();
return view('worker.index', compact('products'));
}
这是我的观点(仅感兴趣的部分):
@foreach ($products as $product)
<div class="card" style="width: 18rem;">
<div class="card-body">
<h5 class="card-title">{{$product->name}}</h5>
<p class="card-text">{{$product->codice_prodotto}}</p>
{{-- <p class="card-text">{{$product->sectors->products_id}}</p> i've tried this and that gets' me this error
Trying to get property 'products_id' of non-object --}}
{{-- <p class="card-text">{{$product->sectors['products_id']}}</p> i've tried this and that get's me this error
Trying to access array offset on value of type null
--}}
【问题讨论】:
-
我认为刀片内的代码是错字试试这样的
{{$product->sector->products_id}} -
不,表的名称是扇区,这样是正确的,但仍然不起作用
-
你们所有的产品都有扇区吗?
-
@areg 是的,每个产品都有一个部门,product_id 是产品的 id,这是部门表的主键
-
你能试着把你的 p 标签包裹在
@if($product->sectors)里看看会发生什么吗?
标签: php eloquent laravel-blade laravel-7