如何在控制器中添加自定义数据 Laravel

How to add custom data in controller Laravel

我有一个表单可以发送 title, demo, text 之类的数据。这些字段可以由用户插入,但我在 table 中有 user_id 应该由框架本身自动插入。我不想创建 <input type='hidden' name='user_id' value='{{Auth::user()->id}}'> 因为它根本不安全。当用户必须填写表格时,如何自动填写 user_id

控制器

public function store(Request $request)
{
    //TODO: ADD user_id to this data and insert into tbl
    $v_data = $request->validate([
        'title' => 'required|min:5',
        'demo' => 'required',
        'text' => 'required',
        'category' => 'required|numeric',
    ]);

    Post::create($v_data);

    return redirect()->back();
}

而不是:

Post::create($v_data);

您可以使用:

Post::create($v_data + ['user_id' => auth()->id()]);

就去做..

public函数存储(请求$request) {

//TODO: ADD user_id to this data and insert into tbl
$v_data=$request->validate([
    'title'=>'required|min:5',
    'demo'=>'required',
    'text'=>'required',
    'category'=>'required|numeric',
]);

$v_data['user_id']=auth()->user()->id;// this extra line

Post::create($v_data);
return redirect()->back();

}