카테고리 없음

laravel 라라벨 create

백위한 2024. 5. 9. 23:54

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');
}