Laravel Eloquen使用模型在表格插入中添加其他元素


Laravel Eloquen add additional element in table insertion using model

我正在通过$RegisterData = Input::all();获取注册详细信息,在验证规则之后,我正在通过中间RiderModel::create($RegisterData);创建它,我想生成一个随机数并与之一起存储

即$RegisterData ->代码 = $generatedrandomnumber;

我怎么能雄辩地做到这一点

最简单的方法是使用creating事件:

// RiderModel
public static function boot()
{
  parent::boot();
  static::creating(function ($rider) {
    $rider->code = $rider->code ?: YOUR_RANDOM_NO_FUNCTION();
  });
}

那么你根本不需要更改你的代码:

RiderModel::create($RegisterData);

如果没有code随输入一起传递,则在创建过程中将追加到模型中。

那么

fill()方法呢?Fill() 将数组中的所有数据填充到您的 RiderModel 模型中声明的可填写字段。

class RiderModel extends Eloquent{
    # Fillable Fields
    protected $fillable = array('foo', 'bar');
    ....
}

使用可填充属性填充模型后,可以将代码存储到模型中,然后保存:

 $riderModel = new RiderModel;
 $riderModel->fill(Input::all());
 $riderModel->code = $generatedrandomnumber;
 $riderModel->save();