Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何防止一个模型在一个关系中有多个模型?[拉威尔]_Php_Laravel_Eloquent_Orm - Fatal编程技术网

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更灵活,但需要更严格的编码规则