Php 如何防止一个模型在一个关系中有多个模型?[拉威尔]
假设我有两张桌子,车和车主,一辆车可以有一个车主,一个车主可以有一辆车 但是,如果我执行:Php 如何防止一个模型在一个关系中有多个模型?[拉威尔],php,laravel,eloquent,orm,Php,Laravel,Eloquent,Orm,假设我有两张桌子,车和车主,一辆车可以有一个车主,一个车主可以有一辆车 但是,如果我执行: $owner=App\owner::first(); $owner->car()->创建(['color'=>'red']); $owner->car()->创建(['color'=>'green']); 我最终会: 汽车{ id:“1”, 颜色:“红色”, 所有者id:“1”, }, 汽车{ id:“2”, 颜色:“绿色”, 所有者id:“1”, }, 现在车主1有两辆车,我怎么能阻止呢?例如,在尝
$owner=App\owner::first();
$owner->car()->创建(['color'=>'red']);
$owner->car()->创建(['color'=>'green']);
我最终会:
汽车{
id:“1”,
颜色:“红色”,
所有者id:“1”,
},
汽车{
id:“2”,
颜色:“绿色”,
所有者id:“1”,
},
现在车主1有两辆车,我怎么能阻止呢?例如,在尝试添加第二辆车时,更新行或至少抛出一个错误。在创建模型时,无法真正自动解决问题 但是,有两种选择: 1:作为代码的一部分,在创建模型之前对数据库执行检查。 2:使数据库表中的
owner\u id
列unique
(向其添加唯一索引)
选项2是更自动化的方式,但非常不宽容。选项1更灵活,但需要更严格的编码规则。在创建模型时,您无法真正自动解决问题 但是,有两种选择: 1:作为代码的一部分,在创建模型之前对数据库执行检查。 2:使数据库表中的
owner\u id
列unique
(向其添加唯一索引)
选项2是更自动化的方式,但非常不宽容。选项1更灵活,但需要更严格的编码规则