본문 바로가기
IT/PHP

PHP/Laravel(11) CRUD#4

by Sungjun_ 2020. 2. 23.

드디어 CRUD 중에서 마지막 D입니다.

 

바로 시작하겠습니다

 

먼저 show.blade.php에 가서 삭제 버튼을 만들어 줍시다.

 

@extends('layouts.master')

@section('title')
    Show Board
@endsection

@section('content')
    <p style="margin-top:100px; margin-left:100px">Show Board</p>
    <div style="margin-top:10px; margin-left:100px">
    <p>제목 : {{$board->title}}</p>
    <p>내용 : {{$board->story}}</p>
    <a href="/boards/{{$board->id}}/edit"><button>수정</button></a>
    <form style="display:inline;" action="/boards/{{$board->id}}" method="POST">
        @csrf
        @method('DELETE')
    <button>삭제</button>
    </form>
    </div>
@endsection

 

삭제 버튼은 DELETE method를 이용해야하기 때문에 form 태그 안에 버튼을 넣어줍니다.

DELETE method도 PUT과 마찬가지로 라라벨에서 제공하는 기능입니다.

 

이제 라우트와 컨트롤러를 만들어줍시다.

 

먼저 web.php 입니다.

 

<?php

Route::get('/boards', 'BoardController@index');
Route::get('/boards/create', 'BoardController@create');
Route::post('/boards','BoardController@store');
Route::get('/boards/{board}', 'BoardController@show');
Route::get('/boards/{board}/edit', 'BoardController@edit');
Route::put('/boards/{board}', 'BoardController@update');
Route::delete('/boards/{board}', 'BoardController@destroy');

 

put과 마찬가지로 delete로 해주고

컨트롤러에는 destroy 함수를 만들기 때문에 delete가 아닌 destroy로 해주겠습니다.

 

다음으로 컨트롤러입니다.

 

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Board;

class BoardController extends Controller
{
    public function index(){
        $boards = Board::all();
        return view('boards.index',compact('boards'));
    }

    public function create(){
        
        return view('boards.create');
    }

    public function store(Request $request){

        /* $board = Board::create(request(['title','stroy])) >>>>
            이렇게 사용할시에는 function store() 이렇게 사용가능
            괄호 안에 Request $request 필요 없음*/

        $board = Board::create([
            'title'=>$request->input('title'),
            'story'=>$request->input('story')
        ]);
        return redirect('/boards/'.$board->id);
    }

    public function show(Board $board){

        return view('boards.show',compact('board'));
    }

    public function edit(Board $board){

        return view('boards.edit',compact('board'));
    }

    public function update(Board $board){

        $board->update(request(['title', 'story']));

         /*
        $board->update([
            'title'=>request('title'),
            'story'=>request('story')
        ]);
        */

        return redirect('/boards/'.$board->id);
    }

    public function destroy(Board $board){

        $board->delete();

        return redirect('/boards');
    }

}

 

글을 삭제하고 글 목록을 보여주는 페이지로 가게했습니다.

 

이제 삭제 버튼을 누르고 작동하는지 확인해 봅시다.

 

삭제 전

 

삭제 후

 

삭제 후

 

 

보시는 것과 같이 첫 번째 글이 삭제 된 것을  볼 수 있습니다.

 

 

 

이것으로 CRUD 마치겠습니다.

 

 

'IT > PHP' 카테고리의 다른 글

Laravel - 회원가입  (0) 2020.12.10
Laravel - 댓글 작성하기  (0) 2020.07.26
PHP/Laravel(10) CRUD#3  (0) 2020.02.23
PHP/Laravel(9) CRUD#2  (0) 2020.02.22
PHP/Laravel(8) CRUD#1  (0) 2020.02.22

댓글