Cakephp でアプリ プラグインを開発しています。そして、私は以下のデモの関数に行き詰まっています:
データベースには、データを含む「プラットフォーム」テーブルがあります(「1」=>「PC」、「2」=>「PS3」...)。
ゲームビューでは、私は持っています:
<? $platformes = array($igra['Igra']['pid']); /* gives me 1,2 */ $platforme = $this->requestAction( array( 'plugin' => 'gamer', 'controller' => 'Igra', 'action' => 'getPlatformaIme' ), $platformes ); ?>
コントローラーには、次のような関数があります。
function getPlatformaIme($pids) { $platforme = explode(', ', $pids); $this->loadModel('Gamer.Platforme'); foreach($platforme as $pid) { $this->Platforme->find('all', array( 'conditions' => array('Platforme.id' => $pid) )); $name[] = $this->Platforme->field('name'); } return implode(', ', $name); }
これにより、PC、PS3 が表示されるはずですが、そうではありません。配列に1がなくても、PCになります。関数を修正するにはどうすればよいですか?
ヘルプのTnx、これが正しい方法です。
関数:
function getPlatformaIme($pids) {
$platforme[] = explode(',', $pids);
$this->loadModel('Gamer.Platforme');
foreach($platforme as $pid) {
$names = $this->Platforme->find('list', array(
'conditions' => array(
'Platforme.id' => $pid
)
));
}
return implode(', ', $names);
}
配列が (1,2) の場合、データベースから名前が返されます (PC、PS3) が返されます