AXS3でCakePHPを使うための備忘録4
前回のエントリで、日本語が化けると書きましたが。今までの設定を見直してみると、テーブルの定義でのエンコーディングにUTF-8を指定すれば問題ないことに気付きました。
さまざまなブログでいろいろな解決方法が紹介されていますが、とりあえずAXS3では、app/config/database.php でのDB接続時のエンコーディング指定と、テーブル作成時の指定さえあれば日本語も通るようです。
というわけで、もうすでにBooksテーブルを作ってしまった人のために、MySQLでテーブルを作り直す方法です。(データの移行は考慮していません。)
$ mysql bookshelf -u dbuser -p
******
mysql> DROP TABLE IF EXISTS books;
mysql> CREATE TABLE books (id INTEGER PRIMARY KEY AUTO_INCREMENT,
created DATETIME,
modified DATETIME,
title VARCHAR(50),
author VARCHAR(50)
) DEFAULT CHARSET=utf8;
mysql> \q
「AXS3でCakePHPを使うための備忘録2」も修正しておきました。
ここまでだけだと物足りないので、http://localhost でアクセスしたときに表示されるデフォルトのページの変更の仕方を紹介します。
app/config/routes.php の46行目、$Route で始まる行を以下のように修正します。これは、ブラウザがルートディレクトリを指定したときに接続する先を指定する行であり、Booksコントローラのindex()というメソッドを呼ぶようにします。
$Route->connect('/', array('controller' => 'books', 'action' => 'index');
これにより、http://localhost でBook一覧を表示するページが表示されるようになります。今回のプログラムにはありませんが、認証が必要なページを作る場合にはこの機能を使うと良いのではないでしょうか。




コメント