이번에는 CRUD 중 R을 해보겠습니다.
web.php와 BoardController.php에 코드를 추가합니다.
먼저 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');
다음으로 BoardController.php 입니다.
<?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([
'title'=>$request->input('title'),
'story'=>$request->input('story')
]);
return redirect('/boards/'.$board->id);
}
public function show(Board $board){
return view('boards.show',compact('board'));
}
}
먼저 store 함수, create 페이지에서 작성 버튼을 눌렀을 때
/boards/id값 페이지로 가게합니다.
show 함수는 다음에 만들 show.blade.php 파일에 $board를 넘겨줍니다.
show.blade.php를 만들어줍니다.
@extends('layouts.menu')
@section('title')
Show Board
@endsection
@section('content')
<p>Show Board</p>
<p>제목 : {{$board -> title}}</p>
<p>내용 : {{$board -> story}}</p>
@endsection
/boards/create로 가서 글을 작성해봅시다.
총 3개의 글을 작성했고
작성을 하면
이렇게 제목과 내용을 볼 수 있는 것을 볼 수 있습니다.
그리고 index페이지에서 a태그를 사용해 링크를 걸어 제목을 클릭하면
내용을 보여주게 하겠습니다.
index.blade.php 수정입니다.
@extends('layouts.master')
@section('title')
Board Index
@endsection
@section('content')
<p>Board Index</p>
@foreach ($boards as $item)
<a href="/boards/{{$item->id}}">Title : {{$item->title}}</a><br>
@endforeach
@endsection
저렇게 수정해준 후에
링크를 눌러보면
show 페이지로 넘어가 보여주는 것을 확인 할 수 있습니다.
이것으로 CRUD 중 R을 마치겠습니다.
기존 PHP만하다가 Laravel을 쓰니 적응이 잘 안되네요 ㅠㅠ
'IT > PHP' 카테고리의 다른 글
PHP/Laravel(11) CRUD#4 (0) | 2020.02.23 |
---|---|
PHP/Laravel(10) CRUD#3 (0) | 2020.02.23 |
PHP/Laravel(8) CRUD#1 (0) | 2020.02.22 |
PHP/Laravel(7) 모델 (0) | 2020.02.21 |
PHP/Laravel(6) 데이터베이스 연결 및 생성 (0) | 2020.02.21 |
댓글