1

PHP

echo $this->Form->create('Street');
echo $this->Form->input('street', array('empty' => '-- select --', 'label' => '???'));

DB

ID | Street | Description
-----------------------
1  | Foo    | Street 1 description
2  | Bar    | Street 2 description
3  | FooFoo | Street 3 description

次のようなラベルを作成したい:

Foo - Street 1 description

お気に入り:

echo $this->Form->input('street', array('empty' => '-- select --', 'label' => 'Street.street - Street.description'));

Cakephp フォームヘルパーでこれを生成するにはどうすればよいですか? ありがとう!

4

1 に答える 1

0

なぜこれをやりたいのかわかりませんが、どこでやりたいかによって異なります。add アクションを実行している場合は、DB にそのようなレコードがまだないため、明らかに DB から読み取ることはできません。編集アクションを実行している場合 (焼き付けられていると思います)、ビューにデータがあります。したがって、次のことができます。

コントローラーには次のようなものがあるはずです:

//There should be a variable called $street containing the record data for this to work
//The following sets $street, so it is accessible as $street in the view 
$this->set(compact('street'));

ビューで:

echo $this->Form->input('street', array('empty' => '-- select --', 'label' => $street['Street']['description']));

多数のレコードがある場合、$street配列にはインデックスが付けられます。

于 2012-05-23T11:33:54.417 に答える