我的数据库模式大致如下:
applications
- id
- merchant_id
- merchant_channel_id
merchants
- id
merchant_channels
- id
- merchant_id
要创建新的应用程序,请执行以下操作:
$application = new Application;
$application->merchant_id = $data->merchant_id;
// Check the supplied merchant_channel_id is related to the supplied merchant_id
$merchant_channel = MerchantChannel::where('merchant_id', $data->merchant_id)
->findOrFail($data->merchant_channel_id);
$application->merchant_channel_id = $merchant_channel->id;
$application->save();
如您所见,在保存应用程序之前,我需要确保提供的商家渠道ID属于提供的商家ID。很好
但是,使用关系将责任从我身上带走的方式有没有那么麻烦的方式呢?
在定义的应用程序模型中,我具有以下关系:
class Application extends Model
{
public function merchant()
{
return $this->belongsTo(Merchant::class, 'merchant_id');
}
public function merchant_channel()
{
return $this->belongsTo(MerchantChannel::class, 'merchant_channel_id');
}
PS-我无法修改数据库架构。我必须处理不幸的事情。