从刀片中的外键获取数据
Posted
技术标签:
【中文标题】从刀片中的外键获取数据【英文标题】:Get data from foreign key in blade 【发布时间】:2021-07-07 22:25:03 【问题描述】:我不知道如何从这个外键中获取数据。我已按照文档中的所有步骤进行操作,但我仍然不知道需要做什么。
这是我的产品型号:
<?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)
里看看会发生什么吗?
【参考方案1】:
这里
$product->sectors->products_id
sectors必须sector与函数名相同
$product->sector->products_id
其他的,foreign_key
的默认值必须是product_id
而不是products_id
,
所以你必须在关系中定义它
public function sector()
return $this->hasOne('App\Sector','products_id');
【讨论】:
以上是关于从刀片中的外键获取数据的主要内容,如果未能解决你的问题,请参考以下文章
根据codeigniter中的外键从两个表中获取json编码数据