我正在尝试为Laravel模型设置一个随机默认值,以便当用户注册随机值时会为每个用户保存到数据库中。
我在StackOverflow上看过类似的question,它解释了如何使用$ attributes变量设置默认值,但它没有解释随机位。
答案 0 :(得分:3)
覆盖模型的save
方法:
public function save(array $options = array())
{
if(empty($this->id)) {
$this->someField = rand();
}
return parent::save($options);
}
答案 1 :(得分:1)
对于绑定保存模型时的字段默认值
public static function boot()
{
parent::boot();
static::creating(function($post)
{
$post->created_by = Auth::user()->id;
});
}
答案 2 :(得分:0)
您没有提供足够的信息,因此我为您提供了解决方案:您可以在用户模型中使用MUTATOR:
class User extends Model {
public function setRandomStringAttribute($number)
{
$this->attributes['random_string'] = str_random($number);
}
}
where" random_string"是用户表中保存值的列。这样每次设置" random_string"模型的属性,它按照定义自动设置。你只需使用它:
$user = new User;
$user->random_string = 20;
$user->save();