[php] codeigniter (model)

devyang97·2021년 7월 19일
0

Model

// codeigniter/app/Models/topic_model.php
<?php

namespace App\Models;

use CodeIgniter\Model;

class Topic_model extends Model {

    // topic 테이블 데이터 가져오기
    public function gets() {
        $result = $this->db->query('SELECT * FROM topic')->getResult();
        return $result;
    }
    
    public function get($topicId) {
        $sql = 'SELECT * FROM topic WHERE id = ?';
        return $this->db->query($sql, [$topicId])->getRow();
    }
}

View

// codeigniter/app/Views/get.php
<h1><?= $topic->title ?></h1>
<span><?= $topic->created ?></span>
<section>
    <?= $topic->description ?>
</section>
// codeigniter/app/Views/main.php
<span>토픽 페이지!!</span>
// codeigniter/app/Views/topic_list.php
<ul>
    <?php
    foreach ($topics as $topic) {
    ?>
        <li>
            <a href="/opentutorials-php/codeigniter/public/topic/get/<?= $topic->id ?>">
                <?= $topic->title ?>
            </a>
        </li>
    <?php }
    ?>
</ul>

Controller

// codeigniter/app/Controllers/Topic.php

<?php

namespace App\Controllers;

use \App\Models\Topic_model;

// 이 컨트롤러는 url 접근 시 맨 뒤에 topic으로 접근 가능
class Topic extends BaseController {
    private $topicModel;

    function __construct() {
        // db 사용
        $this->topicModel = new Topic_model();
    }

    // topic 뒤에 아무런 경로가 없다면 index()를 의미함.
    public function index() {
        $data = $this->topicModel->gets(); // 데이터 가져오기

        echo view('_head');
        echo view('topic_list', array(
            'topics' => $data
        ));
        echo view('main');
        echo view('_foot');
    }

    // http:// ... /topic/get/1
    // topic: 컨트롤러
    // get: 함수
    // 1: 인자
    public function get($id) {
        $topics = $this->topicModel->gets(); // 전체 데이터 가져오기
        $data = $this->topicModel->get($id);


        echo view('_head');
        echo view('topic_list', array(
            'topics' => $topics
        ));
        echo view('get', array(
            'topic' => $data
        ));
        echo view('_foot');
    }
}

  • Thanks to 생활코딩

0개의 댓글