CakePHPのfindの第1引数による戻り値の違い
CakePHPでfindメソッドを使用した場合の戻り値についてです。
このようになテーブルを作成し、データを登録して検索します。
フィールド | 種別 |
id | int(11) |
name | varchar(255) |
title | varchar(255) |
content | text |
findの第1引数が「all」の場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
array(1) { [0]=> array(1) { ["Board"]=> array(4) { ["id"]=> string(1) "2" ["name"]=> string(18) "あんぱんまん" ["title"]=> string(21) "しょくぱんまん" ["content"]=> string(21) "かれーぱんまん" } } } |
findの第1引数が「first」の場合
1 2 3 4 5 6 7 8 9 10 11 12 13 |
array(1) { ["Board"]=> array(4) { ["id"]=> string(1) "2" ["name"]=> string(18) "あんぱんまん" ["title"]=> string(21) "しょくぱんまん" ["content"]=> string(21) "かれーぱんまん" } } |
findの第1引数が「list」の場合
1 2 3 4 |
array(1) { [2]=> string(21) "しょくぱんまん" } |
findの第1引数が「count」の場合
1 |
int(1) |
CakePHPのControllerの命名規則
CakePHPでのControllerの命名規則です。
例)hello_controller.php
1 2 3 4 5 6 7 8 9 10 11 |
<?php class HelloController extends AppController { public $name = 'Hello'; function index() { echo "hello world!"; } } ?> |
「AppController」を継承するコントローラーを作成します。
クラス名:<名前>Controller
ファイル名:<名前>_controller.php
となります。
CakePHPでNot Foundになってしまった場合
symfony、codeigniterなどのPHPフレームワークを使用したことがあったけど、CakePHPは使用したことがなかった。
symfonyを最近は仕事で使っていてなんか大規模システムを構築するのにあってそうなイメージを感じた。
今度、CakePHPで仕事をする可能性があるので勉強します。
でとりあえず動かそうとしたとき
「http://192.168.106.10/hashizume/cake/」でシステムにアクセスしたら
404 Not Foundが表示された・・・どおして。
調べていると.htaccessのRewriteBaseが「/」であることが前提となっているみたいなので修正しました。
修正箇所はRewriteBaseの行を追加しました。
1 2 3 4 5 6 |
<IfModule mod_rewrite.c> RewriteEngine on RewriteBase /hashizume/cake/ RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L] </IfModule> |
1 2 3 4 5 6 |
<IfModule mod_rewrite.c> RewriteEngine on RewriteBase /hashizume/cake/app/ RewriteRule ^$ webroot/ [L] RewriteRule (.*) webroot/$1 [L] </IfModule> |
1 2 3 4 5 6 7 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /hashizume/cake/app/webroot/ RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] </IfModule> |
これでNotFoundがなくなりました。