Set互換のパス記法
- {n} 数値添字の表現
- {s} 文字列添字の表現
- Foo 任意の文字列(括弧囲み無し) これは文字列リテラルなどとして扱われます。
- {[a-z]+} 括弧で囲まれた任意の文字列({n}と{s}を除く) は正規表現と解釈されます。
set::combine
$users = $this->User->find( 'all' );
$list = Set::combine( $users, '{n}.User.id', '{n}.User.name' );
$usersは
array(
[{0}.user.id] => [{0}.user.name]
[{1}.user.id] => [{1}.user.name]
[{2}.user.id] => [{2}.user.name]
)
findで探し出したものをuser.idとuser.nameで連想配列を作る。
$this->set
- 使い方
this->set('変数名', 値);
contorollerの変数はそのままではviewで使うことができないので一度
$item = 'apple';
$this->set('fruits', $item);
のようにsetに入れることでviewに変数を渡すことができるようになる
$this->set(compact("name", "address", "tel"));
このようにまとめることもできる。
viewでは
$name $address $tel
のように$をつけるだけで使える。