create 메서드를 사용해 모델을 생성하고 데이터베이스에 삽입할 수 있다.
create와 save의 차이점: save는 전체 Eloquent 모델 인스턴스를 받아들이는 반면 create는 일반 PHP 배열을 받아들인다.
새로 생성된 모델은 create 메서드를 통해 반환된다.
use App\Models\Post;
$post = Post::find(1);
$comment = $post->comments()->create([
'message' => 'A new comment.',
]);
createMany 메서드를 사용하여 여러 개의 관련 모델을 생성할 수 있다.
$post = Post::find(1);
$post->comments()->createMany([
['message' => 'A new comment.'],
['message' => 'Another new comment.'],
]);
또한 findOrNew, firstOrNew, firstOrCreate, updateOrCreate 메서드를 사용하여 관계에 대한 모델을 만들고 업데이트할 수 있다.
다음은 create() 메서드를 사용해 작성한 게시글 작성 코드이다.
public function store(Request $request){
$request = $request->validate([
'title' => 'required',
'details' => 'required',
]);
$user_id = auth()->id();
$boardData = array_merge($request, ['user_id' => $user_id]);
$this->Board->create($boardData);
return redirect()->route('boards.index');
}