0

次のように、ユーザーが削除リンクをクリックするたびに動的メッセージを表示したいと思います。

<?php echo $this->Form->postLink(
                'Delete',
                array('action' => 'delete', $company['Company']['id']),
                array('confirm' => 'Are you sure to delete %s?',$company['Company']['name']));

会社名は動的になりますが、このコードは「%s を削除してもよろしいですか?」と出力します。

これを修正する方法を知っていますか?

4

1 に答える 1

1

変数置換がないため、%s が含まれています。name 変数は確認キーの一部ではありません (質問コードの展開):

<?php 
echo $this->Form->postLink(
    'Delete',
    array('action' => 'delete', $company['Company']['id']),
    array(
        'confirm' => 'Are you sure to delete %s?',
        0 => $company['Company']['name']
    )
);

sprintf を使用する

sprintf を使用します。

<?php 
echo $this->Form->postLink(
    'Delete',
    array('action' => 'delete', $company['Company']['id']),
    array('confirm' => sprintf('Are you sure to delete %s?',$company['Company']['name']))
);

使用する __

または、変換関数 ( vsprintf を使用)を使用します。

<?php 
echo $this->Form->postLink(
    'Delete',
    array('action' => 'delete', $company['Company']['id']),
    array('confirm' => __('Are you sure to delete %s?',$company['Company']['name']))
);
于 2013-07-27T21:21:50.273 に答える