简化与外键相关表的关系检查

时间:2018-08-30 16:58:17

标签: eloquent

我的数据库模式大致如下:

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-我无法修改数据库架构。我必须处理不幸的事情。

0 个答案:

没有答案