【发布时间】:2020-11-27 11:28:27
【问题描述】:
我有这个数据库结构。 2 个表:shipment_out、stock_move。
shipment_out 具有典型的主键整数 id 字段。
stock_move 有一个名为shipment 的字段,它是字符串类型。该字段可以具有以下值:
"stock_shipment_out,1512",
"stock_shipment_in,65400",
"sale.line,358",
(...)
问题是表stock_move与基于同一字段的多个表相关,所以它之前有这个文本。
在这种情况下,我想定义关系:shipment_out hasMany stock_move。
所以我需要通过 stock_move.shipment 加入,有这个值:'stock_shipment_out,{id}'。
那么我该如何定义这种关系呢?会是这样的:
public function stockMoves()
{
return $this->hasMany(StockMove::class, 'shipment', 'stock.shipment.out,id');
}
我可以通过查询生成器实现这种关系:
$shipments = ShipmentOut
::join('public.stock_move', DB::raw('CONCAT(\'stock.shipment.out,\',public.stock_shipment_out.id)'), '=', 'stock_move.shipment')
->where('stock_shipment_out.id', '=', $shipmentOut);
但我也需要一段感情……
【问题讨论】:
标签: laravel eloquent foreign-keys relationship