如何在 Laravel 5 上获取具有关系的字段的名称?
Posted
技术标签:
【中文标题】如何在 Laravel 5 上获取具有关系的字段的名称?【英文标题】:How to get name of a field with relationship on Laravel 5? 【发布时间】:2018-01-27 16:33:09 【问题描述】:如何查看相关字段的名称而不是 ID?
我有一个Product
表和Category_Product
表。在表Product
中,我有一个字段cateproduct_id
(数字类型)我想把它放到我的前端。但它显示了一个数字。
有什么方法可以将cateproduct_id
转换为类别产品的名称?
示例:获取类别名称为Nokia
而不是cateproduct_id = 4
。
这是控制器产品,如:
public function index()
$products = Product::with('cateproductId')->get();
return view('duan/list', compact('products'));
产品型号:
class Product extends Model
public function cateproductId()
return $this->belongsTo(Category_Product::class);
在管理员中,我获取列表类别并为我的产品选择一个类别。
在前端页面中,我需要get name category of Product
而不是get id category of Product
:
<div class="list">
@foreach($products as $item)
<h1>$item->cateproductId->name</h1>
@endforeach
</div>
我尝试调试如下:
<div class="list">
@foreach($products as $item)
dd($item)
@endforeach
</div>
结果如下:
#relations: array:1 [▼
"cateproductId" => null
]
【问题讨论】:
你是否尝试在关系中指定外键:return $this->belongsTo(Category_Product::class, cateproduct_id);因为默认情况下它会在 products 表中寻找匹配的 categoryProduct_id。 感谢@user3681740。它正在工作。 【参考方案1】:在第二个参数中添加外键
class Product extends Model
public function cateproductId()
return $this->belongsTo(Category_Product::class,'cateproduct_id');
【讨论】:
以上是关于如何在 Laravel 5 上获取具有关系的字段的名称?的主要内容,如果未能解决你的问题,请参考以下文章