안녕하세요 상훈입니다.

테이블 데이터를 업데이트 하는 2가지 방법을 포스팅하겠습니다.

 

// Router : web.php
Route::get('/posts/update/{id}', 'PostController@update');

// Controller
PostController

//table 
posts

//column 
title, body



1. save() 메서드 사용하는 방법

 - 정공법이지만, 불필요하고 깔끔하지 않습니다. 2번을 추천합니다. 

  PostController

public function update ($id) {
        $post = Post::find($id);
        $post->title = "updated title";
        $post->body = "updated body";
        $post->save();
    }

입니다. $id 값을 라우팅으로 받아오면, 해당하는 id를 가진 데이터를 조회하고, 직접 하나씩 바꿔주는 겁니다.

그리고 마지막에는 저장까지. 아주 정공법이죠. 비효율적이기도 하구요.

2번으로 넘어가겠습니다.

 


2. update() 메서드 사용하는 방법

Post::where('id', $id)->update([
            'title'=>'updated title2',
            'body'=>'updated body2'
        ]);

update 엘로퀀트(Eloquent)를 사용하여 해당 테이블의 컬럼의 id를 조회하고 업데이트하는 과정입니다.

자동으로 save.

 

이제 저장해주시고, uri를 통해 접속해주시면, table에 데이터가 변경되었음을 확인하실 수 있습니다.

uri 접속
table 조회

 

이상입니다.

 

 

반응형

안녕하세요 상훈입니다.

라라벨 - migration에서 명령어로 테이블의 컬럼을 추가하는 방법을 포스팅하겠습니다.

기본적인 테이블은 posts 라는 이름의 테이블로, 게시글을 저장하는 곳입니다.

 

posts migration / posts table desc

 

그 안에 데이터가 이렇게 있다고 가정하고 컬럼을 추가하는 과정을 그려보도록 하겠습니다.

 

내부에 존재하는 2개의 데이터

 

1. bash에서 migration 생성 (명령커맨드) 

php artisan make:migration add_user_id_to_posts_table

 - add   : 추가하겠다.

 - user_id  : 무엇을 ( user_id 라는 이름의 컬럼을)
   

** 자유롭게 작성해주셔도 무방합니다.

 - to  :  어떤 테이블에 

 - posts_table  :  적용하고자 하는 테이블명

 

2.  up() & down() 에 아래와 같이 작성

 

public function up()
    {
        Schema::table('posts', function (Blueprint $table) {
            $table->integer('user_id');

        });
    }

    public function down()
    {
        Schema::table('posts', function (Blueprint $table) {
            // rollback할 때
            $table->dropColumn('user_id');
        });
    }

 

3. migrate 실행

php artisan migrate

migrate 성공

 

4. 테이블 확인

 

데이터에 default 값이 들어간 컬럼이 생성되었습니다. 


이상입니다.

 

반응형

+ Recent posts