일반적인 오류입니다: 1364 필드 'user_id'에 기본값이 없습니다.
현재 사용자와 함께 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);
}
왜 실패하는지 아세요? ![여기에 이미지 설명 입력]]1
16
3
시도
'user_id' => auth()-> id
또는'user_id' => Auth::user()->id
를 입력합니다.대신
다음과 같이
Auth::id()
를 사용해 보십시오.또한 컨트롤러 상단에
App\Http\Controllers\Auth
와 같은 인증 파사드를 포함하는 것을 잊지 마세요.사용
print_r(Auth);
그런 다음 user_id / id 변수가 어떤 형식인지 확인하고 사용하십시오.