안녕하세요 또 여쭙습니다. ㅠㅠ
어제 CI4를 인스톨하고 rest server를 설치하려다 CI4에는 Rest 서비스를 도와 주는
ResponseTrait 가 있다는 사실 까지 알았습니다.
그래서 Model에서 mysql db로 접근하여 데이타를 가져와서 control에 뿌여주는 간단한 예제 프로그램
작성을 하고 있는데 죽어라 안됩니다... 한번 봐주시면 감사하겠습니다.
Mysql : docker mysql:8.0
port : 3307

=============control ======================================
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
use App\Models as Model;
defined('BASEPATH') OR exit('No direct script access allowed');
class Users extends Controller {
public function __construct(){
}
public function index()
{
$model = new Model\book_model();
$result = $model->getallbooks();
print_r($result);
}
}
============= model =======================================
<?php namespace App\Models;
use CodeIgniter\Model;
use CodeIgniter\Database\ConnectionInterface;
class Book_model extends Model {
protected $db;
//public function __construct(){ ç}
public function getallbooks(){
$db = \Config\Database::connect();
$query = $db->query('SELECT * FROM apis.tbl_books');
$results = $query->getResult();
foreach ($results as $row)
{
echo $row->id;
echo $row->name;
echo $row->price;
}
echo 'Total Results: ' . count($results);
// return $results;
}
}
=========== database 설정 수정부분 =========================
public $default = [
'DSN' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '패스워드',
'database' => 'apis',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => (ENVIRONMENT !== 'production'),
'cacheOn' => false,
'cacheDir' => '',
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3307,
];