0

フォーム上の一連のチェックボックスの次の例があります。

<?php

echo $this->Form->input(
    'reason', array(
        'label'=>false,
        'type' => 'select', 
        'multiple' => 'checkbox',
        'options' => array(
            'Contact me' => 'Contact me',
            'Brochure request' => 'Brochure request',
            'Demonstration request' => 'Demonstration request',
            'Training' => 'Training',
            'Support' => 'Support',
            'Other' => 'Other'
        )
    ));

?>

これは、コントローラーの変数として次のように設定されます。

$this->set('reason', $this->data['Contact']['reason']);

そして、電子メールテンプレートでこれを試しました:

<?php var_dump( implode( ', ', $reason ) ); ?>

次のような結果が得られます:string(28) "Contact me, Brochure request"これらの引用符と文字列 (28) プレフィックスを削除するにはどうすればよいですか?

これを行う最善の方法は何ですか?ありがとう

4

2 に答える 2

2

文字列ヘルパー/テキスト ヘルパーを使用します。機能が組み込まれていtoListます。

// controller
App::uses('String', 'Utility');
echo String::toList($this->request->data['Contact']['reason']);

// or
// controller
$this->set('reason', $this->data['Contact']['reason']);
// view
echo $this->Text->toList($reason);
// outputs 1, 2, 3 and 4

reasonは次の形式の配列であると仮定します。

array(
    (int) 0 => '1',
    (int) 1 => '2',
    (int) 2 => '3',
    (int) 3 => '4'
)

または単に単純なことをするforeach($reason as $k => $v) { echo $v; }

于 2012-09-18T14:53:23.347 に答える
0

ビューで次のような理由にアクセスしようとしています:

コントローラ

$this->set('contact', $this->request->data);

意見

$contact['Contact']['reason'];
于 2012-09-18T14:53:10.980 に答える