반응형

기존에 게시물 보기 페이지는 board 테이블의 컬럼에서 한개의 첨부 파일을 가져와서 보여주는 방식이었고 변경할 방식은 files_tables 테이블에 등록돼 있는 첨부파일 정보를 가져와서 보여주는 방식이다.

 

우선 콘트롤러 부터 수정해보자.

 

/app/Http/Controllers/BoardController.php


    public function show($bid,$page)
    {
        Board::find($bid)->increment('cnt');
        $boards = Board::findOrFail($bid);
        $boards->content = htmlspecialchars_decode($boards->content);
        $boards->pagenumber = $page??1;
        $attaches = FileTables::where('pid',$bid)->where('code','boardattach')->where('status',1)->get();

        return view('boards.view', ['boards' => $boards, 'attaches' => $attaches]);
    }

 

$attaches라는 변수에 첨부 파일의 정보를 모두 담는다. $attaches로 보내주면 view에서 뿌려주면 된다.

 

/resources/views/boards/view.blade.php

@extends('boards.layout')

@section('header')
    @include('boards.toptitle', ['toptitle'=>'게시판 보기', 'multi'=>$boards->multi])
@endsection

@section('content')

    <table class="table table-striped table-hover">
        <tbody>
            <tr>
                <th width="200">제목</th>
                <td>{{ $boards->subject }}</td>
            </tr>
            <tr>
                <td colspan="2">글쓴이 : {{ $boards->userid }} / 조회수 : {{ number_format($boards->cnt) }} / 등록일 : {{ $boards->regdate }}</td>
            </tr>
            <tr>
                <th width="200">내용</th>
                <td>{!! nl2br($boards->content) !!}</td>
            </tr>
           @if(count($attaches)>0)
            <tr>
                <th width="200">첨부 이미지</th>
                <td>
                    <div class="row row-cols-1 row-cols-md-6 g-4" id="attachFiles" style="margin-left:0px;">
                    @foreach ($attaches as $att)
                    <div id='af_{{ $att->id }}' class='card h-100' style='width:120px;margin-right: 10px;margin-bottom: 10px;'><img src='/images/{{ $att->filename }}' width='100' /></div>
                    @endforeach
                    </div>
                </td>
            </tr>
            @endif
        </tbody>
    </table>
    <div align="right">
        <a href="/boards/{{ $boards->multi }}/?page={{ $boards->pagenumber }}" class="btn btn-primary">목록</a>
    </div>
    @endsection    

 

 

이렇게 보이면 성공이다.

 

다음엔 수정과 삭제를 해보자.

반응형

+ Recent posts