Laravel模型中的默认随机值

时间:2015-11-11 12:59:04

标签: php laravel random

我正在尝试为Laravel模型设置一个随机默认值,以便当用户注册随机值时会为每个用户保存到数据库中。

我在StackOverflow上看过类似的question,它解释了如何使用$ attributes变量设置默认值,但它没有解释随机位。

3 个答案:

答案 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();