Cake PHP クエリーパラメーターを含むリンクを出力

PHP

CakePHP クエリーパラメーターを含むリンクを出力

CakePHP 1.2.3.8166

GETで値を取得させたいときに、次のようなパラメーターを含むリンクを出力したい場合、

http://localhost/testsystem/Test/add?user_id=3&project_id=62

htmlヘルパーで次のようにすると、出力できます。

 echo $html->link(リンクに使う文字列, 
       array('action'=>'add',
                  '?'=>array(
                              'user_id'=>3,
                              'project_id'=>62
                             )
           )
 )

CakePHP
Cake PHP クエリーパラメーターを取得

Cake PHP チェックボックスを作る

PHP

Cake PHP チェックボックス ヘルパーを使用する

cake PHP 1.2.3.8166.

CakePHPの本サイトに書いてあった例がちょっとわかりにくかったので、書いておきます。

http://book.cakephp.org/view/713/checkbox

ビュー(見かけ)については、ヘルパー(helper)というクラス達によって、読んで字の如く、簡単に作成ができます。
フォームを作成するための$formもその一つです。

で、本題のcheckboxです。

 例:name属性がcolor、値をyellowとredの二つのチェックボックスを作りたい場合
 
 $form->checkbox('color',array('value'=>'yellow')
 $form->checkbox('color',array('value'=>'red')

なんか、もっとすっきりできるといいんですけどね。
ちょっと残念です。

関連

Cake PHP HABTMのデータをチェックボックスに表示する

Cake PHP テーブルの接頭辞を設定

PHP

CakePHP テーブルの接頭辞を設定する

cake PHP 1.2.3.8166.

何かの理由で、データベース内のテーブルに、接頭辞をつけたいことがあるかと思います。
(cake_post, cake_users,のような)

下記のファイルの次の場所を編集します。

/app/config/databese.php

 var $default=array(...
                    'prefix' => 'cake_',
                   .......);

Cake PHP データベースを利用するACLの使い方1

PHP

CakePHP データベースを利用するACLの使い方

ログインを必要とするWebアプリケーションのニーズは非常に多いでしょう。
ログインをCake PHPではACL(Access Control List)という方法で細かく制御できます。

本家のマニュアルサイトでは説明が分かりにくかったので書いておきます。

【参考】
[[Defining Permissions: Cake’s Database ACL:
http://book.cakephp.org/view/467/Defining-Permissions-Cake-s-Database-ACL]]

Simple Acl controlled Application

まず、ACOとAROという単語を理解します。

  • ACO=Access Control Object アクセスを求められる機能など

たとえば、ブログの投稿機能、削除機能、編集機能などのような機能が多く考えられます。

 
  • ARO=Access Request Object

多いケースは、ユーザーです。一般ユーザーだったり、管理者だったり、というような区分けがあるでしょう。

それでは、ユーザーとグループを作りましょう。
ユーザーは数が多いので、グループを作るのが一般的です。

本家マニュアルサイトに習い、「指輪物語」のキャラクターで考えてみます。
(指輪物語について知らないと理解が難しいかもしれませんが(^_^;)

Fellowship of the Ring™(指輪物語)

    * 戦士
          o アラゴルン
          o レゴラス
          o ギムリ
    * 魔法使い
          o ガンダルフ
    * ホビット
          o フロド
          o ビルボ
          o メリー
          o ピピン
    * 訪問者
          o ゴラム

上記では、ユーザーがアラゴルンやレゴラスで、戦士や魔法使い、がグループです。

指輪物語的なCRUD(Create, Read, Update, Delete)アプリケーションができあがっていて、これからユーザー認証を加えるという前提です。

グループのテーブル(Groups)を作り、ユーザーのテーブル(Users)に所属するGroupIDを入れましょう。

ユーザーのモデル(user.php)に次のように記述します。

 var $belongsTo = array(
   'Group' => array(
 	'className' => 'Group',
 	'foreignKey' => 'group_id',
 	'conditions' => '',
 	'fields' => '',
 	'order' => ''
   )
 );

グループのモデル(group.php)に次のように記述します。

 var $hasMany = array(
  'User' => array(
 	'className' => 'User',
 	'foreignKey' => 'group_id',
 	'dependent' => false,
 	'conditions' => '',
 	'fields' => '',
 	'order' => '',
 	'limit' => '',
 	'offset' => '',
 	'exclusive' => '',
 	'finderQuery' => '',
 	'counterQuery' => ''
   )
 );

ユーザーはグループにblongsToで、グループはユーザーに対してhasManyという関係です。
(データベースのテーブルも、そのように作っておきます。)

ここまでできたら、ケーキのコンソールから、次のようにコマンドを打ちます。

 cake schema run create DbAcl

(cake)の部分は、cake.batなどを動かす部分です。

すみません、ちゃんと全部解説するつもりでしたが、途中で終わっていました。
役に立たなかったの声にお応えして(^_^;、続きを記載しておきます。

 cake schema run create DbAcl

を進めていくと、aros, acos, aros_acos, という3つのテーブルができると思います。

aros, acos, aros_acos というテーブルの中身については、データベースを利用するログインに必要なものですが、とりあえず気にしないで次に進みましょう。

Cake PHP データベースを利用するACLの使い方2