我使用 laravel 8 :
public function up()
{
Schema::create('user', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->integer('created_by')->nullable();
$table->string('created_by_user')->nullable();
$table->timestamps();
});
}
楷模:
<?php
namespace App\Models\Backend\MySQL;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $table = 'user';
}
在控制器中:
use App\Models\User;
public function store(Request $request) {
$data = [
'name' => !empty($request->name) ? $request->name : 'Jony',
'created_by' => auth()->user()->id,
'created_by_user' => auth()->user()->name,
];
User::insert($data);
}
我已經成功插入了。但問題是我的 created_by 和 updated_by 列不會自動更新。有沒有辦法解決這個問題。在user模型中我也沒有設定,protected $timestamps = false但它不起作用。謝謝你。
uj5u.com熱心網友回復:
insert 方法不適用于 eloquent 模型,并且不會更新 created_at 和 updated_at。您應該改用 create 方法。
create 方法自動設定 created_at 和 updated_at
在這里看到這個答案
https://stackoverflow.com/a/58075757/7689224
uj5u.com熱心網友回復:
您應該使用create而不是insert.
User::create($data);
uj5u.com熱心網友回復:
使用create()方法代替insert()
public function store(Request $request) {
$data = [
'name' => !empty($request->name) ? $request->name : 'Jony',
'created_by' => auth()->user()->id,
'created_by_user' => auth()->user()->name,
];
User::create($data);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/371278.html
標籤:拉拉维尔
下一篇:如何重構三元運算子
