Laravel Eloquen 使用模型在 table 插入中添加附加元素
Laravel Eloquen add additional element in table insertion using model
我通过 $RegisterData = Input::all();
获取注册详细信息,在验证规则之后我通过 RiderModel::create($RegisterData);
创建它,在中间我想生成一个随机数并与之一起存储
即 $RegisterData ->Code = $generatedrandomnumber;
我如何在 eloquent 中执行此操作
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();
最简单的方法是使用 creating
事件:
// RiderModel
public static function boot()
{
parent::boot();
static::creating(function ($rider) {
$rider->code = $rider->code ?: YOUR_RANDOM_NO_FUNCTION();
});
}
那么您根本不需要更改代码:
RiderModel::create($RegisterData);
如果没有 code
与输入一起传递,那么它将在创建过程中附加到模型。
我通过 $RegisterData = Input::all();
获取注册详细信息,在验证规则之后我通过 RiderModel::create($RegisterData);
创建它,在中间我想生成一个随机数并与之一起存储
即 $RegisterData ->Code = $generatedrandomnumber;
我如何在 eloquent 中执行此操作
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();
最简单的方法是使用 creating
事件:
// RiderModel
public static function boot()
{
parent::boot();
static::creating(function ($rider) {
$rider->code = $rider->code ?: YOUR_RANDOM_NO_FUNCTION();
});
}
那么您根本不需要更改代码:
RiderModel::create($RegisterData);
如果没有 code
与输入一起传递,那么它将在创建过程中附加到模型。