pro*_*mer 5 php laravel eloquent laravel-4
每次我执行以下操作:
$user = new User;
$user->name = 'John';
$user->save();
Run Code Online (Sandbox Code Playgroud)
我希望NOW()在MySQL中更新一个名为"modified"的字段.我不能使用Laravel的时间戳,因为我只使用一个修改过的字段.我可以依赖MySQL为我做这个,但我想知道是否有办法在我的Laravel模型中实现这一点?也许在某种程度上使用mutator来保存之前设置它?
作为奖励:我将如何做这样的事情$user->modified = "NOW()"?(这显然是错误的,但希望证明这一点)
Jos*_*ber 11
您可以在saving事件中完成此操作,您可以在模型的boot方法中注册回调:
class User extends Eloquent {
public static function boot()
{
static::saving(function($user)
{
$user->modified = DB::raw('NOW()');
// Alternatively, you can use this:
$user->modified = Carbon\Carbon::now();
});
parent::boot();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7008 次 |
| 最近记录: |