Это не проблема мошенника или чего-то еще.
проблема в том, что service
является новой записью, и packages
будет пустым в первый раз, поэтому модель не знает своего определения / схемы, поэтому вам нужно назначить ее как массив, тогда она будет автоматически преобразована в json
class User extends Model
{
// make sure your field is jsonable
protected $jsonable = ['packages'];
Теперь для пакетов Заменить
$service->status_id = $faker->numberBetween(1, 6);
foreach ($service->packages as $package) {
$package['receiver_postal_code'] = $faker->postcode();
$package['receiver_address'] = $faker->address();
$package['weight_id'] = $faker->numberBetween(1, 3);
$package['post_type_id'] = $faker->numberBetween(1, 3);
$package['distribution_time_id'] = $faker->numberBetween(1, 3);
$package['special_services_id'] = $faker->numberBetween(1, 3);
$package['price'] = 0;
$package['package_type_id'] = $faker->numberBetween(1, 3);
$package['insurance_type_id'] = $faker->numberBetween(1, 3);
}
$service->save();
С
// ...
$service->status_id = $faker->numberBetween(1, 6);
$packages = [];
$howManyPackges = 3;
while($howManyPackges > 0)
$package = [];
$package['receiver_postal_code'] = $faker->postcode();
$package['receiver_address'] = $faker->address();
$package['weight_id'] = $faker->numberBetween(1, 3);
$package['post_type_id'] = $faker->numberBetween(1, 3);
$package['distribution_time_id'] = $faker->numberBetween(1, 3);
$package['special_services_id'] = $faker->numberBetween(1, 3);
$package['price'] = 0;
$package['package_type_id'] = $faker->numberBetween(1, 3);
$package['insurance_type_id'] = $faker->numberBetween(1, 3);
$packages[] = $package;
$howManyPackges--;
}
$service->packages = $packages;
$service->save();
// ...
Будет добавлено 3 записи для повторителя packages
должен добавить массив пакетов и jsonable
преобразует его в json
.
если есть сомнения, прокомментируйте.