这是我保存帖子的商店方法。
public function store(CreatePostRequest $request)
{
$post = new Post([
'title' => $request['title'],
'content' => Crypt::encrypt($request['content']),
'published_at' => Carbon::now()
]);
$post->user()->associate(Auth::user());
$newPost=Post::create($post->toArray());
$this->syncTags($newPost, $request['tag_list']);
return redirect('posts')->withMessage('Post Saved Successfully !!!');
}
在laracasts教程中,他正在做一个
Article::create($request->all());
我需要做一些额外的事情,比如加密,但是我混淆了这个方法吗?它会更干净吗?
答案 0 :(得分:3)
在模型中执行此操作。我使用set / get * Attribute()方法来动态更改内容。
所以你可以使用Article::create($request->all());
然后在模型中使用可填充数组来仅自动填充允许的内容(例如title,content和published_at)。
然后使用(在模型中)
之类的东西function setContentAttribute( $value ){
$this->attributes['content'] = Crypt::encrypt($value);
}
事实上,您也可以调整此方法,以便将published_at属性设置为今天,甚至更好地使用您的数据库提供now()
时间。