Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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 拉雷维尔。setRelation(s)-仅添加最后一个关系_Php_Laravel_Eloquent - Fatal编程技术网

Php 拉雷维尔。setRelation(s)-仅添加最后一个关系

Php 拉雷维尔。setRelation(s)-仅添加最后一个关系,php,laravel,eloquent,Php,Laravel,Eloquent,php:7.3.4 Laravel框架5.7.28 大家好。帮助为所有关系添加数据。 现在由于某种原因,只添加了最后一个关系。 setRelations的工作原理类似 代码 公共静态函数firstOrCreateModel(){ $cart=cart::firstOrCreate(self::getWhereQuery()); 如果($cart->delivery==1){ $cart->setRelation('np_area',$cart->with('npArea')->first();

php:7.3.4
Laravel框架5.7.28

大家好。帮助为所有关系添加数据。 现在由于某种原因,只添加了最后一个关系。
setRelations
的工作原理类似

代码

公共静态函数firstOrCreateModel(){
$cart=cart::firstOrCreate(self::getWhereQuery());
如果($cart->delivery==1){
$cart->setRelation('np_area',$cart->with('npArea')->first();
$cart->setRelation('np_city',$cart->with('npCity')->first();
$cart->setRelation('np_warehouse',$cart->with('npWarehouse')->first();
转储($cart->toArray());
}
返回$cart;
}

setRelation()不保存到数据库,只是为了测试。如果是多对多,最好使用sync(),如果是一对多,最好使用attach()

我不需要保存任何数据。我需要在所选模型中加入一些关系。结果表明,该模型的输出仅为1个关系(最后一个关系),而不是3个关系。为什么要将购物车添加为购物车的关系?因为根据“交货”列中的值,我需要获取有关从事交货的公司办事处的信息。而且每家公司都有不同数量的表格。(例如,仅一个区域和部门=两个表,一个三)我需要查看交货字段中的值,然后获取将参与此订单交货的特定公司的相关数据。我不需要将数据输入关系数据库。我只需要准备模型,使它在前端以正确的形式飞行。嗯,由于参与交付的公司的办事处是通过api获得的,因此每个办事处都有自己的结构。不是每个人都有相同数量的表。我必须这么做,我明白。但是使用
$cart->with('npArea')->first()
我认为您没有做任何有用的事情
$cart
已经是
cart
并且
带有('npArea')
将只加载关系,而不选择它。因此,
$cart->with('npArea')->first()
的结果再次是
cart
的一个实例,它似乎不是您想要设置为关系的东西?顺便问一下,有什么反对使用
$cart->load('np_区域')