向在Laravel中数据库中保存的数组添加静态值

问题描述 投票:1回答:2

在Laravel中,我有一个名为articles>]的数据库表和一个相应的名为Article的模型。说,表文章具有列ID,正文,created_by

在ArticleController控制器中,我可以这样保存到数据库:

    $data = request()->validate(['name'=>'required|min:5|max:10']);

    $article = new \App\Article();
    $article->name = request('name');
    $article->created_by = 1;
    $article->save();

    return redirect()->back();

我想缩写为:

    \App\Article::create(request()->validate(['name'=>'required|min:5:max:10']));
    return redirect()->back();

我的问题是,列[[created_by

的值将不会来自POST请求,而是可能来自会话或动态全局变量。 如何在简化版本中添加

created_by

列?
在Laravel中,我有一个名为article的数据库表和一个名为Article的相应模型。假设表中的文章具有id,body,created_by列。在ArticleController控制器中,我可以保存到DB ...
php laravel
2个回答
0
投票
您可以使用模型观察器来监听创建事件,并从auth或会话中分配created_at。

0
投票
存在几种解决方案。首先,作为Alex Jose的回应,您可以使用观察者。您可以使用观察者或事件(在模型中)。其次,您可以在表格列上使用默认值。但为什么?你的第一种方法很好。更具可读性,更可扩展。如果您想成为优秀的开发人员,请使用第一种方法。如果要缩短代码,请尝试以下操作:
© www.soinside.com 2019 - 2024. All rights reserved.