Laravel新模型缺少created_at和updated_at字段。

huangapple go评论90阅读模式
英文:

Laravel new Model missing created_at and updated_at fields

问题

在控制器的更新函数中,当我使用 new Model 创建新模型时,缺少了 created_atupdated_at 字段。因此,我会收到 409 错误,因为它无法执行查询。有没有任何原因导致这两个字段缺失?

  1. $branchItem = Branch::where('id', $branch['branchId'])->get()->first();
  2. // 如果没有与 branchId 匹配的记录,则创建新记录
  3. if (!$branchItem) {
  4. $branchItem = new Branch;
  5. }
  6. $branchItem->id = $branch['branchId'];
  7. $branchItem->save();
英文:

When I create a new Model in controller update function with new Model it's missing created_at and updated_at. I therefore get error 409, as it is unable to perform the query. Any idea why those two fields are missing?

  1. $branchItem = Branch::where('id', $branch['branchId'])->get()->first();
  2. // if there is no record with branchId create new one
  3. if (!$branchItem) {
  4. $branchItem = new Branch;
  5. }
  6. $branchItem->id= $branch['branchId'];
  7. $branchItem->save();

答案1

得分: 2

你还可以查看Laravel迁移文档

并且你还可以在你的迁移文件中按照下面的代码来操作:

  1. Schema::create('table_name', function (Blueprint $table) {
  2. $table->bigIncrements('id');
  3. $table->string('name');
  4. $table->timestamps(); // 这个字段会在数据库中创建created_at和updated_at字段。
  5. });

所以你需要将上面的代码添加到你的迁移文件中,放在这里:project_folder/database/migrations/migration_file

一旦你添加了这行代码,你需要在终端中运行迁移命令:

  1. php artisan migrate:refresh

注意:当你运行这个命令时,它会清空所有表的数据并重置结构。

希望这能帮助你解决问题。

英文:

You can also check with the documentation of Laravel Migration

And you can also follow below code in your migration file

  1. Schema::create('table_name', function (Blueprint $table) {
  2. $table->bigIncrements('id');
  3. $table->string('name');
  4. $table->timestamps(); // this field is able to create your created_at and updated_at field in DB.
  5. });

So you have to add above code in your migration file placed here project_folder/database/migrations/migration_file

Once you add this line you have to run migration command in terminal

  1. php artisan migrate:refresh

Note: When you run this command, this will flush your all table's data and reset structure

Hope this will lead you to resolve problem.

答案2

得分: 1

创建created_atupdated_at列是手动操作,虽然不是最佳实践,但可以解决你的问题。

始终使用Laravel迁移来创建表格。

在这里,$table->timestamps(); 负责创建这两个字段。

英文:

create created_at and updated_at column manually it's not best practice but it will solve your issue

always use laravel migration to create tabel

  1. Schema::create('example', function (Blueprint $table) {
  2. $table->bigIncrements('id');
  3. $table->timestamps();
  4. });

here $table->timestamps(); is responsible to create those 2 fields

答案3

得分: 0

缺少表中的created_at和updated_at,请将其视为时间戳,updated_at设置为NULL。

英文:

You are missing created_at and updated_at in table take it as a timestamp and updated_at as NULL

答案4

得分: 0

尝试更改代码如下:

  1. $branchItem = Branch::where('id', $branch['branchId'])->first();
  2. // 如果没有与branchId匹配的记录,则创建新记录
  3. if (!$branchItem) {
  4. $branchItem = new Branch;
  5. $branchItem->id = $branch['branchId'];
  6. $branchItem->save();
  7. } else {
  8. echo "记录已存在";
  9. }
英文:

Try changing code like this.

  1. $branchItem = Branch::where('id', $branch['branchId'])->first();
  2. // if there is no record with branchId create new one
  3. if (!$branchItem) {
  4. $branchItem = new Branch;
  5. $branchItem->id= $branch['branchId'];
  6. $branchItem->save();
  7. } else {
  8. echo "Record Exist";
  9. }

huangapple
  • 本文由 发表于 2020年1月3日 17:44:37
  • 转载请务必保留本文链接:https://go.coder-hub.com/59576241.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定