Php 使用Laravel模型保存多级阵列
我无法使用Laravel-7模型保存此数据 这是我的数据Php 使用Laravel模型保存多级阵列,php,laravel,eloquent,laravel-7,Php,Laravel,Eloquent,Laravel 7,我无法使用Laravel-7模型保存此数据 这是我的数据 $supplier=[ “名称”=>“供应商1”, '图片'=>[ [ 'name'=>'PIC 1', “电话号码”=>[ ['number'=>'111111'], ['number'=>'123456'] ] ], [ 'name'=>'PIC 2', “电话号码”=>[ ['number'=>'222222'] ] ] ] ]; 这是我的模型 Supplier.php //Supplier.php 公共功能供应商_pic() {
$supplier=[
“名称”=>“供应商1”,
'图片'=>[
[
'name'=>'PIC 1',
“电话号码”=>[
['number'=>'111111'],
['number'=>'123456']
]
],
[
'name'=>'PIC 2',
“电话号码”=>[
['number'=>'222222']
]
]
]
];
这是我的模型
Supplier.php
//Supplier.php
公共功能供应商_pic()
{
返回$this->hasMany('SupplierPIC');
}
还有其他的型号
//SupplierPIC.php
公共功能供应商()
{
返回$this->belongsTo('Supplier');
}
公共功能picu电话号码()
{
返回$this->hasMany('SupplierPICPhoneNumber');
}
//SupplierPICPhoneNumber.php
公共功能供应商_pic()
{
返回$this->belongsTo('SupplierPIC');
}
如何在控制器上保存这些数据?
谢谢你你只需要把它分解成它的组成对象 在您的例子中,它是一个
供应商
对象和两个供应商
对象,每个对象都有一个供应商电话号码
建议
- 你的关系命名没有遵循最佳实践,这有点令人困惑。试着用复数来命名那些使用
类型关系的事物(即有很多
而不是pic\u电话号码
)pic\u电话号码
是否需要完整的型号?json列可能更合适供应商PicphoneNumber
供应商
对象和两个供应商
对象,每个对象都有一个供应商电话号码
建议
- 你的关系命名没有遵循最佳实践,这有点令人困惑。试着用复数来命名那些使用
类型关系的事物(即有很多
而不是pic\u电话号码
)pic\u电话号码
是否需要完整的型号?json列可能更合适供应商PicphoneNumber
$supplier = Supplier::firstOrCreate([
'name' => 'Supplier 1'
]);
collect($data['pics'])->each(function ($pic) use ($supplier) {
// Create the PIC
$x = SupplierPIC::create([
'name' => $pic['name']
]);
// Attach it to the supplier
$supplier->supplier_pic()->save($x);
// Attach phone numbers
collect($pic['phone_number'])->each(function ($number) use ($x) {
// Create the PIC Phone number
$y = SupplierPICPhoneNumber::create([
'number' => $pic['number']
]);
// Attach the number to the PIC
$x->pic_phone_number()->save($y);
});
});