如何在存储到数据库之前自定义模型的字段

时间:2015-07-09 15:54:37

标签: php laravel eloquent laravel-5 mutators

我有一个这样的模型:

class Article extends Model {
protected $fillable = [
    'title',
    'body',
    'img_profile', // store name of image
    ];
}

这样的控制器:

public function store(ArticleRequest $request){
    $article = Auth::user()->articles()->create($request->all());
    return redirect('articles');
}

这样的形式:

{!! Form::model($article = new \App\Article,['url' => 'articles','files' => true ]) !!}
{!! Form::text('title', null ) !!}
{!! Form::textarea('body', null) !!}
{!! Form::file ('img_profile', '') !!}
{!! Form::submit('Submit') !!}
{!! Form::close() !!}

当我提交表单时,img_profile字段存储了默认缓存文件/private/var/tmp/phpceBMP2。但我只想更新file_name中的img_profile

如何在将img_profile请求存储到数据库之前更改它的值?

1 个答案:

答案 0 :(得分:4)

您应该以{{1​​}}模式使用mutator

Article

但是你应该考虑是否真的想以这种方式在DB中存储路径。如果您将来想要改变它怎么办?您必须更新所有记录吗?