備忘録

webの備忘録のために

CakePHP3 モデルその2

一旦モデルを使ったサンプルという事でDBに登録されているものをデータ一覧としてブラウザに表示させてみる。

こちらMAMPの機能でlocalhostにDB名mydata、テーブル名をboardにして以下のような設定設定。

フィールド:id
種別:INT
インデックス:PRIMARY
A_I:On

フィールド:name
種別:VARCHAR(長さ50)

フィールド:title
種別:VARCHAR(長さ50)

フィールド:content
種別:TEXT

このようなフィールドを作成。

それからデータベースの設定の修正として config内にあるapp.phpを開いてdefaultの値を次のように。

'default' => [
    'className' => 'Cake\Database\Connection',
    'driver' => 'Cake\Database\Driver\Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'mydata',
    'encoding' => 'utf8',
    'timezone' => 'UTC',
    'flags' => [],
    'cacheMetadata' => true,
    'log' => false,
    'quoteIdentifiers' => false,
    'url' => env('DATABASE_URL', null),
],

「モデル」エンティティクラス
src/Model/Entity/BoardsEntity.php
※エンティティとはDBから取得したレコード情報をまとめたオブジェクトに関する基本的な仕組み。

<?php
namespace App\Model\Entity;

use Cake\ORM\Entity;

class Board extends Entity {

    protected $_accessible = [
        '*' => true,
        'id' => false
    ];
}

「モデル」テーブルクラス
src/Model/Table/BoardsTable.php
※取り合えずクラスだけ用意しておけば使えるようにはなる。
繋げるだけなら空でおーけー。

<?php
namespace App\Model\Table;

use Cake\ORM\Table;

class BoardsTable extends Table {
}

取り敢えず今回はモデルの設定をした。
次回はこれに基づくコントローラとビューの設定を。

次回に続く・・・・