我有一个任务模型,我试图做一个简单的创建来测试我的一个观察者类中的某些东西。这是我的创建代码。
private function generateTasks(Event $event)
{
$tasks = [];
$tasks[] = [
'event_id' => $event->id,
'title' => 'This is a test',
'description' => 'this is a description',
'due_on' => Carbon::now()->addDays(14)
];
dump(Task::all());
// foreach ($tasks as $task) {
$task = Task::create([
'event_id' => $event->id,
'title' => 'This is a test',
'description' => 'this is a description',
'due_on' => Carbon::now()->addDays(14)
]);
if ($task->save()) {
echo "Saved";
}
else {
echo "NO SAVE";
}
dump($task);
// }
dd($tasks, "DONE");
}
输出如下:
当我查看数据库时,表仍然保留120行。这真的很奇怪,因为它表示正在节省。当我抓取所有任务时,您可以在输出中看到它有120行。如果您查看我的最新输出ID,您会发现我的最高为133。
有什么想法吗?
更新:
我的可填充内容:
protected $fillable = [
'title', 'description', 'due_on', 'event_id', 'completed'
];
Completed具有默认值false。
我的桌子看起来像这样,给大家一个主意:
答案 0 :(得分:0)
create会执行您不需要再次执行的save方法,您可以按照以下步骤进行操作:
private function generateTasks(Event $event)
{
$tasks = [];
$tasks[] = [
'event_id' => $event->id,
'title' => 'This is a test',
'description' => 'this is a description',
'due_on' => Carbon::now()->addDays(14)
];
$task = Task::create([
'event_id' => $event->id,
'title' => 'This is a test',
'description' => 'this is a description',
'due_on' => Carbon::now()->addDays(14)
]);
if ($task) {
echo "Saved";
}
else {
echo "NO SAVE";
}
dd($tasks, "DONE");
}
答案 1 :(得分:0)
我最终从laravel chat获得了帮助。向他们大喊大叫。问题是我在事务内部使用了转储模具。这导致了似乎是节省的时间,但是随后,由于在事务提交之前调用了die,因此它将所有内容回滚。这是一个愚蠢的错误。感谢您的所有帮助!