每当创建新的模态实例时插入一个具有值的字段
Insert a field with value whenever new instance of modal is created
每当为模式创建新行时,我想插入一个具有值的字段。
例如:假设这是我的 user.php 模态
class User extends Authenticatable
{
protected $guarded = ['id'];
}
当我在用户 table 中插入一行时,我想要的是在我的应用程序中的任何地方,然后我想插入一个额外的列 code
及其在用户 table 中的值。
例如:如果我在我的应用程序中执行以下操作
User::create(['name'=>'xyz', 'password' => 'kajsndjk']);
然后它应该在我的 table.
中插入一个额外的列 code =>'Qwedf'
在我的应用程序中,我在很多地方创建用户,所以我不想每次都记住插入 code
列。
请建议我如何实现它。
将此修改器添加到您的用户模型
public function setCodeAttribute($value)
{
$this->attributes['code'] = "Qwedf";
}
任何时候您保存记录代码都会被分配 Qwedf 值
覆盖 User
class 上的静态 create
函数是我认为唯一可行的方法。
public static function create(array $attributes = [])
{
$object = parent::create($attributes);
$object->code = 'some text';
$object->save();
return $object;
}
我已经测试过,正如我预期的那样,oseintow 的答案不会起作用,因为如果你直接修改 code
变量,它 只有 会起作用,你显然是没做。
每当为模式创建新行时,我想插入一个具有值的字段。
例如:假设这是我的 user.php 模态
class User extends Authenticatable
{
protected $guarded = ['id'];
}
当我在用户 table 中插入一行时,我想要的是在我的应用程序中的任何地方,然后我想插入一个额外的列 code
及其在用户 table 中的值。
例如:如果我在我的应用程序中执行以下操作
User::create(['name'=>'xyz', 'password' => 'kajsndjk']);
然后它应该在我的 table.
中插入一个额外的列code =>'Qwedf'
在我的应用程序中,我在很多地方创建用户,所以我不想每次都记住插入 code
列。
请建议我如何实现它。
将此修改器添加到您的用户模型
public function setCodeAttribute($value)
{
$this->attributes['code'] = "Qwedf";
}
任何时候您保存记录代码都会被分配 Qwedf 值
覆盖 User
class 上的静态 create
函数是我认为唯一可行的方法。
public static function create(array $attributes = [])
{
$object = parent::create($attributes);
$object->code = 'some text';
$object->save();
return $object;
}
我已经测试过,正如我预期的那样,oseintow 的答案不会起作用,因为如果你直接修改 code
变量,它 只有 会起作用,你显然是没做。