【发布时间】:2016-03-17 00:08:53
【问题描述】:
我目前在电话号码与联系人或组织之间存在多态关系。我正在使用 morphMap 将父关系命名空间模型的名称分别更改为联系人或组织。
目前,当我想为组织或联系人创建新电话号码时,我会传递两个 URL 参数,parent_id=$record_id 和 parent_type=contact or organization。然后在我的电话号码控制器中,我有以下超级丑陋的:
if ($request->parent_type == 'organization')
{
$parent_record = Organization::find($request->parent_id);
}
elseif ($request->parent_type == 'contact')
{
$parent_record = Contact::find($request->parent_id);
}
if ($parent_record)
{
$parent_record->phone_numbers()->save($phone_number);
return redirect()->route($request->parent_type . '.show', ['id' => $request->parent_id])->with('notify', 'Phone number added!');
}
我知道必须有更好的方法来执行此操作,因为在每个创建或存储方法上我都会复制此代码。我只是不知道如何使它变得更好。
【问题讨论】:
标签: php laravel laravel-5 polymorphism polymorphic-associations