CRUD 중에서 Read입니다.
BoardController.php에서 index 메소드를 수정해 작성한 글을 목록을 만들어줍니다.
public function index(){
return view('boards.index', ['boards' => Board::all() -> sortDesc()]);
}
index 메소드를 위와 같이 변경해줍니다.
boards 테이블에 있는 데이터들을 내림차순으로 가지고와 'boards' 변수($boards)에 저장합니다.
그리고 index.blade.php 파일을 수정해줍니다.
@extends('layouts.app')
@section('section')
<section class="w-2/3 mx-auto mt-8 ">
<div class="flex w-full justify-between">
<div class="flex-initial text-2xl text-green-500">게시판</div>
<div class="flex-initial">
<a href="{{route('boards.create')}}">
<button class="px-4 py-2 text-white bg-blue-500 hover:bg-blue-700">글쓰기</button>
</a>
</div>
</div>
<div class="w-full mt-8">
@foreach($boards as $board)
<table class="w-3/4 mx-auto text-lg">
<thead>
<tr>
<td class="w-1/4"></td>
<td class="w-2/4"></td>
<td class="w-1/4"></td>
</tr>
</thead>
<tbody>
<tr class="border-b mt-2">
<td class="w-1/4 text-center">{{$board -> id}}</td>
<td class="w-2/4"><a href="{{route('boards.show', $board -> id)}}">{{$board -> title}}</a></td>
<td class="w-1/4 text-center">{{$board -> created_at -> format('Y-m-d')}}</td>
</tr>
</tbody>
</table>
@endforeach
</div>
</section>
@stop
블레이드 문법 foreach를 사용해 $boards에 저장된 정보를 가지고옵니다.
제목을 클릭했을 때, 해당 글로 이동하게 만들었습니다.
이제 해당 글을 보기 위한 show 메소드를 추가해야합니다.
BoardController.php에 show 메소드를 추가해줍니다.
public function show($id){
$board = Board::where('id', $id) -> first();
return view('boards.show', compact('board'));
}
넘겨받은 id 값이 같은 글을 찾아 show.blade.php 파일로 넘겨줍니다.
web.php에 다음과 같이 라우트를 설정하고 show.blade.php 파일을 만들어줍니다.
web.php
Route::get('boards/{board}', [BoardController::class, 'show']) -> name('boards.show');
show.blade.php
@extends('layouts.app')
@section('section')
<section class="w-2/3 mx-auto mt-16">
<div class="border-b border-gray-300 mb-8 pl-1 pb-2 text-xl font-bold">
{{$board -> title}}
</div>
<div class="text-lg">
{{$board -> story}}
</div>
</section>
@stop
이렇게 작성을 해주고 index화면에서 목록에 있는 글을 클릭하면
제목과 내용이 제대로 나오는 것을 볼 수 있습니다.
'IT > PHP' 카테고리의 다른 글
Laravel 8 - CRUD(5) (1) | 2021.01.05 |
---|---|
Laravel 8 - CRUD(4) (0) | 2021.01.05 |
Laravel 8 - CRUD(2) (0) | 2021.01.04 |
Laravel 8 - CRUD(1) (0) | 2021.01.04 |
Laravel - 라우트 (0) | 2020.12.30 |
댓글