반응형
이번엔 모델이란걸 해보자. 모델이란 걸 해보기 전에 디비에서 게시판 데이터를 가져와서 게시판 리스트에 뿌리는걸 먼저 해보자.
우선 컨트롤을 수정한다.
/app/Controllers/Board.php
<?php
namespace App\Controllers;
class Board extends BaseController
{
public function list()
{
$db = db_connect();
$query = "select * from board order by bid desc";
$rs = $db->query($query);
$data['list'] = $rs->getResult();//결과값 저장
return render('board_list', $data);//view에 리턴
}
public function write()
{
return render('board_write');
}
public function view()
{
return render('board_view');
}
}
모델을 사용하지 않고 디비에 연결해서 쿼리를 날린 후 데이터를 가져왔다. 그리고 그 데이터를 배열에 넣고 게시판 리스트 페이지로 보낸다.
이번엔 board_list에서 어떻게 받는지 확인해보자.
/app/Views/board_list.php
<table class="table">
<thead>
<tr>
<th scope="col">번호</th>
<th scope="col">글쓴이</th>
<th scope="col">제목</th>
<th scope="col">등록일</th>
</tr>
</thead>
<tbody id="board_list">
<?php
foreach($list as $ls){
?>
<tr>
<th scope="row"><?php echo $ls->bid;?></th>
<td><?php echo $ls->userid;?></td>
<td><?php echo $ls->subject;?></td>
<td><?php echo $ls->regdate;?></td>
</tr>
<?php }?>
</tbody>
</table>
데이터를 넘길때 $data['list']로 넘겼다. 그러면 view에서는 $data의 키값으로 받게 된다. 키값으로 보내준 $list에 결과값이 들어 있다.
자 이제 php spark server 로 웹서버를 실행한뒤 확인해보자
이런식으로 board 테이블에 저장돼 있는 값이 표시되면 성공이다. 이번엔 모델을 이용해 보자.
게시판에서 사용할 모델을 하나 만들어 준다.
/app/Models/BoardModel.php
<?php
namespace App\Models;
use CodeIgniter\Model;
class BoardModel extends Model{
protected $table = 'board';//사용하는 테이블
protected $returnType = 'object';//이값이 없으면 기본이 array가 된다.
//사용할 컬럼지정, 전부 다 해줬다.
protected $allowedFields = [
'bid'
,'userid'
,'subject'
,'content'
,'regdate'
,'modifydate'
,'status'
,'parent_id'
];
}
이렇게 만들어준다. 이제 컨트롤러에서 모델을 불러와 사용해보자.
/app/Controllers/Board.php
<?php
namespace App\Controllers;
use App\Models\BoardModel;//사용할 모델을 반드시 써줘야한다.
class Board extends BaseController
{
public function list()
{
// $db = db_connect();
// $query = "select * from board order by bid desc";
// $rs = $db->query($query);
// $data['list'] = $rs->getResult();//결과값 저장
$boardModel = new BoardModel();
$data['list'] = $boardModel->orderBy('bid', 'DESC')->findAll();
return render('board_list', $data);//view에 리턴
}
public function write()
{
return render('board_write');
}
public function view()
{
return render('board_view');
}
}
이렇게 수정한 후 게시판 리스트를 확인해보자.
http://localhost:8080/board
아까와 같이 게시판의 내용이 출력되면 성공이다.
하지만 앞으로의 대부분의 예제에서는 모델을 사용하지 않을 것이다. 그런 예제들은 다른곳에 많으니 다른 곳에서 확인하자. 여기서는 쭈욱 야매로~
반응형
'PHP강좌 > [CI4]게시판만들기강좌' 카테고리의 다른 글
[PHP+CI4+mysql]게시판 만들기 강좌 #10. 게시판 글쓰기 (0) | 2022.11.01 |
---|---|
[PHP+CI4+mysql]게시판 만들기 강좌 #9. 게시판 내용 보기 (0) | 2022.11.01 |
[PHP+CI4+mysql]게시판 만들기 강좌 #7. 파일 준비 3편 (0) | 2022.10.26 |
[PHP+CI4+mysql]게시판 만들기 강좌 #6. 파일 준비(include, layout.php) 2편 (0) | 2022.10.26 |
[PHP+CI4+mysql]게시판 만들기 강좌 #5. 몇가지 설정(디비,오류표시,index.php) (0) | 2022.10.26 |