laravel一对一关系中如何设置多个字段的匹配
ModelA
protected $connection = 'XXXX';
protected $table = "XXXX";
public function PartnerPrice()
{
return $this->hasOne(PartnerPrice::class,'sku','jdsku');
}
ModelB
protected $connection = 'XXXX';
protected $table = "XXXX";
public function PartnerPrice()
{
return $this->belongsTo(Finance::class,'jdsku','sku');
}
Controller
protected function grid()
{
$grid = new Grid(new Finance());
$grid->column('ID', __('id'));
$grid->column('JDorderCode', __('订单号'));
//需要添加一列price,但数据ModelA的jdsku、handlename和ModelB的sku、handlename必须匹配
return $grid;
2. 问题描述?
在laravel admin中
数据库A是订单数据,里面有该订单对应的sku和handlename
数据库B是sku数据,里面有handlename的不同sku,和对应的price
3. 您期望得到的结果?
我需要在订单信息里展示该订单的sku和handlename对应的price,需要sku和handlename都要匹配
您可以尝试通过以下步骤在订单信息中展示该订单的sku和handlename对应的price:
grid()
方法中,将ModelA和ModelB关联起来,以便使用它们的属性和关系。hasOne()
和belongsTo()
方法中的关联字段和关联模型类名是正确的。这样,当在laravel admin中查看订单信息时,将会显示每个订单的sku和handlename对应的price