【问题标题】:Simplify store controller method on laravel 5在 laravel 5 上简化存储控制器方法
【发布时间】:2015-02-19 16:01:40
【问题描述】:

这是我保存帖子的商店方法。

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());

我需要做一些额外的事情,比如加密,但是我把方法弄乱了吗?能更干净点吗?

【问题讨论】:

标签: laravel controller


【解决方案1】:

在模型中执行。我使用 set/get*Attribute() 方法即时更改内容。

因此您可以使用Article::create($request->all());,然后在模型中使用可填充数组来仅自动填充允许的内容(例如标题、内容和published_at)。

然后使用类似(在模型中)

function setContentAttribute( $value ){
    $this->attributes['content'] = Crypt::encrypt($value);
}

事实上,您也可以调整这种方法,以便将 published_at 属性设置为今天,或者甚至更好地使用您的数据库来提供 now()s 时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-06
    • 2017-03-15
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    • 2015-09-30
    • 1970-01-01
    相关资源
    最近更新 更多