【发布时间】:2019-03-07 13:27:38
【问题描述】:
我在 Apache 上使用 mysql DB,Laravel 5.7。
我已经有一个完整的系统在运行,一切似乎都很好,除了......我决定开始使用一些 eloquent factory 进行测试,并注意到当我保存/创建一个时,这些工厂在 mysql 中创建了 2 个条目模型。所以我简化了,并创建了我自己的“makeFake”方法,发现它在做同样的事情。我不知道我做错了什么。或者也许框架的某些区域我不完全理解。
主要问题:为什么我的模型 create() 和 save() 方法在调用时会创建 2 条记录?
下面的简化案例...(在这种情况下,我调用了 2 个方法来创建公司,但我得到了 4 个公司记录)
来自我的 web.php
Route::get('/savingTest', function () {
$company = App\Company::makeFake1();
dump($company);
$company = App\Company::makeFake2();
dump($company);
return 'complete';
});
来自我的 Company.php 模型(我已经加载了 faker 和 GUID 库)
public static function makeFake1()
{
$faker = Faker::create();
$company = new Company;
$company->code = $faker->word;
$company->name = $faker->company;
$company->guid = Guid::create();
$company->save();
return $company;
}
public static function makeFake2()
{
$faker = Faker::create();
return Company::create([
'code' => $faker->word,
'name' => $faker->company,
'guid' => Guid::create(),
]);
}
【问题讨论】:
-
请将您的代码复制到您的问题中,不要使用图片。
-
你刷新路线了吗?清理您的数据库表并再次测试。
-
代码编辑器,只有 JS 和 HTML 和 CSS 部分,没有 PHP。是不是直接放进JS盒子里?
-
不,放在问题的主体上,选择代码并使用 CTRL + K 。你应该看看这个:stackoverflow.com/help/how-to-ask
-
已编辑以用代码替换图像。
标签: php laravel laravel-5 eloquent model