我有以下工厂:
$factory->define(App\Product::class, function (Faker $faker) {
return [
'product_name' => $faker->sentence($nbWords = 4, $variableNbWords = true),
'product_description' => $faker->paragraph($nbSentences = 6, $variableNbSentences = true),
'product_price' => $faker->numberBetween($min=500, $max=2000),
];
});
以及以下迁移:
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->increments('product_id');
$table->string('product_name', 356)->nullable(false);
$table->longText('product_description')->nullable();
$table->integer('product_price')->nullable(false);
$table->timestamps();
});
}
在运行工厂并打印出新创建的产品之后,它说PK是“ id”而不是“ product_id”。尝试访问$ product-> product_id时,返回null的原因是工厂显然不存在。
在检查数据库表时,我可以确认该列名为product_id而不是'id'。
我已经跑过了:
composer dump-autoload
,然后再次运行迁移,但仍返回错误的数据。
谢谢
答案 0 :(得分:1)
根据文档,您应该通过在模型中进行设置来覆盖默认值。
inputPhrase
别忘了在表关系中进行必要的更改(hasManys,belongTos等...)
答案 1 :(得分:0)
您可以更改为:
$table->integer('product_id')->primary();