【发布时间】:2019-04-01 09:16:06
【问题描述】:
我正在尝试使用模型工厂来播种我的数据库,但是当我运行它时,我得到了错误:
Trying to get property 'id' of non-object
这是我的代码:
//TasksTableSeeder.php
factory(pams\Task::class, '2000', rand(1, 30))->create();
//模型工厂.php
$factory->defineAs(pams\Task::class, '2000', function (Faker\Generator $faker) {
static $task_number = 01;
return [
'task_number' => $task_number++,
'ata_code' => '52-00-00',
'time_estimate' => $faker->randomFloat($nbMaxDecimals = 2, $min = 0.25, $max = 50),
'work_order_id' => '2000',
'description' => $faker->text($maxNbChars = 75),
'action' => '',
'duplicate' => '0',
'certified_by' => '1',
'certified_date' => '2015-11-08',
'status' => '1',
'created_by' => '1',
'modified_by' => '1',
'created_at' => Carbon\Carbon::now()->format('Y-m-d H:i:s'),
'updated_at' => Carbon\Carbon::now()->format('Y-m-d H:i:s'),
];
});
我尝试从模型工厂中删除所有变量并使用常量,但这并不能解决问题。我尝试从ModelFactory.php 中提取数据并将其直接放入TasksTableSeeder.php,它确实有效,但是我使用的是常量而不是变量。
我这辈子都搞不懂它在说什么'id'。
我正在运行 Laravel v5.1
【问题讨论】:
标签: laravel-5.1 faker