Я пытаюсь присвоить user_id текущему пользователю, но это дает мне эту ошибку
SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a
default value (SQL: insert into `posts` (`updated_at`, `created_at`)
values (2017-04-27 10:29:59, 2017-04-27 10:29:59))
вот мой метод
//PostController
Post::create(request([
'body' => request('body'),
'title' => request('title'),
'user_id' => auth()->id()
]));
с этими наполнителями
//Post Model
protected $fillable = ['title', 'body', 'user_id']
Однако этот метод справится с задачей
//PostController
auth()->user()->publish(new Post(request(['title' ,'body'])));
//Post Model
public function publish(Post $post)
{
$this->posts()->save($post);
}
Попробуйте
'user_id' => auth()->id
или
'user_id' => Auth::user()->id
вместо
'user_id' => auth()->id()
Попробуйте сделать Auth::id()
, например
Post::create([ 'body' => request('body'), 'title' => request('title'), 'user_id' => Auth::id()]);
также не забудьте включить Auth фасад в верхней части вашего контроллера, который называется App\Http\Controllers\Auth
.
используйте print_r(Auth);
.
затем посмотрите, в каком формате у вас есть переменная user_id / id и используйте ее