드디어 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 |
댓글