Как добавить пользовательские данные в контроллер Laravel

Как добавить пользовательские данные в контроллер Laravel

24.12.2019 09:02:21 Просмотров 47 Источник

У меня есть форма, которая будет отправлять такие данные, как title, demo, text. Эти поля могут быть вставлены пользователем, но у меня есть 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();
}
У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/59464466/how-to-add-custom-data-in-controller-laravel#comment105109223_59464466
Пожалуйста, покажите код в вашем контроллере.

Ответы - Как добавить пользовательские данные в контроллер Laravel / How to add custom data in controller Laravel

Является ответом!
Marcin Nabiałek

24.12.2019 02:36:45

Вместо:

Post::create($v_data);

Вы можете использовать:

Post::create($v_data + ['user_id' => auth()->id()]);
https://stackoverflow.com/questions/59464466/how-to-add-custom-data-in-controller-laravel/59468239#comment105131925_59468239
вау.. я не знал, что это был всего лишь простой массив .. спасибо, чувак.
Cyber Soldiers

24.12.2019 02:55:53

Просто сделай это..

публичное хранилище функций (запрос $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();

}

Закрыть X