모든 데이터 가져오기
App\Models\TaskModel.php
<?php
namespace App\Models;
use CodeIgniter\Model;
class TaskModel extends Model
{
protected $table = 'task';
}
task table에 접근하기 위해서, protected $table 속성에 'task'값을 넣어줍니다.
App\Controller\Task.php
<?php
namespace App\Controllers;
use App\Controllers\BaseController;
class Task extends BaseController
{
public function index()
{
$taskModel = model('TaskModel');
$data = $taskModel->findAll();
return view('Task/index', ['tasks' => $data]);
}
}
위에서 작성한 TaskModel 을 참조하여, codeigniter에서 제공하는 findAll() 메소드를 이용하면, 모든 레코드를 가져 올 수 있습니다.
받아온 data를 view에 전달합니다.
App\Views\Task\index.php
<h1>Welcome To the Task Page</h1>
<ul>
<?php foreach($tasks as $task): ?>
<li>
<?= $task['id'] ?>
<?= $task['description'] ?>
</li>
<?php endforeach; ?>
</ul>
controller에서 받은 data를 list형태로 뿌려줍니다.
특정 ID갑의 레코드만 가져오기
위에선 findAll()를 이용해서, 모든 데이터를 가져왔고, find() 메소드에 primary인 id값을 전달함으로써 특정 id의 레코드 데이터만 가져올 수 있습니다.
public function show($id)
{
$taskModel = model('TaskModel');
$data = $taskModel->find($id);
return view('Task/show', [
'data' => $data,
]);
}
URL 파라미터로 $id값을 받아와서 find()에 전달합니다.
받아온 data를 show.php에 전달합니다.
<h1>Welcome To the Task Page</h1>
<dl>
<dt>ID</dt>
<dd><?= $data['id'] ?></dd>
<dt>Description</dt>
<dd><?= $data['description'] ?></dd>
<dt>Creatad_at</dt>
<dd><?= $data['created_at'] ?></dd>
<dt>Updated_at</dt>
<dd><?= $data['updated_at'] ?></dd>
</dl>
dl태그를 이용해서 각 컬럼과 값을 표현합니다.
위에서 database로부터 값을 가져올 떄, findAll()이나 find()를 사용함으로 SQL의 내용을 알 수 없습니다.
그러한 SQL을 확인하거나, 그 밖에도 여러가지 디버그를 하고 싶은 경우에 사용할 수 있는 방법 두가지를 설명하겠습니다.
1. .env 설정
#--------------------------------------------------------------------
# APP
#--------------------------------------------------------------------
app.baseURL = 'http://taskapp.localhost'
baseURL에 현재 브라우저에서 우리의 프로젝트에 접근할 수 있는 URL을 적어줍니다.
그리고 브라우저를 다시 확인해보면 우측하단에, 위와 같은 icon이 하나 생깁니다.
버튼을 클릭하면, 여러가지 옵션이 나타나게되고, 이 옵션들을 통해서 디버그할 수 있습니다.
view layout구조가 어떤식인지 확인하거나
요청되는 값들을 한 눈에 볼 수 있거나
위에서 말했던, SQL문도 확인할 수 있습니다.
2. dd()를 이용
PHP에서는 디버그나, 중간중간 값을 출력하고 싶은 경우에 var_dump(); + exit; 를 사용하는 경우가 많습니다.
이 두가지를 합친 기능이 dd()입니다.
public function show($id)
{
$taskModel = model('TaskModel');
$data = $taskModel->find($id);
dd($data)
return view('Task/show', [
'data' => $data,
]);
}
그러면, 아까 icon을 눌러 확인했던 것처럼 해당 $data 변수의 값을 출력할 수 있습니다.
'IT 공부 > CodeIgniter' 카테고리의 다른 글
[ codeigniter 4 ] 404 Exception handling (0) | 2022.03.10 |
---|---|
[ codeigniter 4 ] Model의 return 타팁을 Entity로 변경하기 (0) | 2022.03.09 |
[ Codeigniter 4 ] Command / Controller를 이용해서 Migrate 실행하기 (0) | 2022.03.07 |
[ Codeigniter ] Codeigniter 4 프로젝트 virtualhost 서버 설정 (0) | 2022.02.28 |
[ Codeigniter 4 ] GoogleのKeyword広告クローラー (0) | 2022.01.21 |