【发布时间】:2019-04-01 23:53:13
【问题描述】:
我在十月 CMS 中创建服务插件。我有 2 个转发器字段(包裹、邮递员)。我使用 Faker Plugin 在数据库中插入虚拟数据但出现错误
为 foreach() 提供的参数无效
这是我的种子代码
<?php namespace Sepehr\Service\Updates;
use Sepehr\Service\Models\Service;
use Faker;
use October\Rain\Database\Updates\Seeder;
class SeedAllTable extends Seeder
{
public function run()
{
$faker = Faker\Factory::create();
$service = new Service();
$service->user_id = 1;
$service->manager_id = 1;
$service->sender_postal_code = $faker->postcode();
$service->sender_address = $faker->address();
$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();
【问题讨论】:
-
你好,repeater字段一般都是以Jsonable格式保存数据的,所以你可以尝试将数组转成JSON,这样就可以保存repeater字段数据了。
-
谢谢,我尝试了,但是 service->save() 不工作我在另一个没有中继器的插件中测试并且 service->save() 不工作
-
您正在为
$service->packages之类的包使用 foreach 循环,这不起作用,因为您要创建服务,$service->packages当服务已经存在并且它将包含包时,这将起作用。跨度> -
@ChiragPatel 你可以给我一个示例代码吗?
标签: octobercms octobercms-plugins octobercms-backend