Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день!
Подскажите новичку, каким образом должна быть составлена форма или контроллер, чтобы при добавлении новой записи в базу в соответствующее поле таблицы заносился id текущего пользователя?
Все решил вот так:
public function store(Model $varModel)
{
$varModel->column_id = Auth::user()->id;
$varModel->save()
}
Изменено Deviator2001 (24.02.2016 09:53:29)
Не в сети
Не в сети
Да, это создано именно в методе post контроллера.
Данные передаются через post из формы.
Полностью у меня это выглядит так
public function store(Post $postModel)
{
$postModel->title = Input::get('title');
$postModel->slug = Input::get('slug');
$postModel->excerpt = Auth::user()->id; //в это поле записывается id
$postModel->content = Input::get('content');
$postModel->save();
return redirect()->route('post.index');
}
Если на ваш взгляд это не корректно, то буду благодарен за верное решение.
Не в сети
Максимально близкий к оригиналу:
public function store()
{
Post::create([
'title' => Input::get('title'),
'slug' => Input::get('slug'),
'user_id' => Auth::user()->id,
'content' => Input::get('content')
]);
return redirect()->route('post.index');
}
1) Особого смысла в параметрах указывать Post $postModel нет, оно просто делает new Post.
2) В реальности лучше сделать свой класс запроса (php artisan make:request), где будут проверятся все поля типа title, slug и тд. Тогда можно будет вообще создавать одной строкой: Post::create($request->all());
Не в сети
Страницы 1