コントローラーでテーブルから単一のレコードを渡しているのに、ビューがテーブル全体を表示するという奇妙な問題が発生しました。
私は広範なログを記録しており、コントローラーが $this->set() を介して単一のレコードを渡していることを確信しています。
コントローラー (ContactsController : show_list)
$arr_contacts = $this->Contact->find(
'all',
array(
'conditions' => array(
'Contact.state_id' => $i_state_id,
'Contact.city'=> $str_city
),
'fields' => array(
'Contact.id',
'Contact.name',
'Contact.city'
),
'recursive' => -1
)
);
$contacts = $arr_contacts;
$this->log ($contacts, 'debug');
$this->set('contacts', $this->paginate());
$this->log(__FUNCTION__." : ".__LINE__, 'debug' );
ログに出力:
Debug: Array
(
[0] => Array
(
[Contact] => Array
(
[id] => 504
[name] => Michael
[city] => New York
)
)
)
Debug: show_list : 303
ビューファイル (show_list.ctp)には、
<div class="contacts index">
<?php echo print_r($contacts);?>
ビュー ファイルは、テーブルのすべてのレコードのリストを出力します。Cakephp が表示する SQL ダンプは、追加の SQL 呼び出しが行われていることを示しています。ただし、これらの電話がどこから来ているのかは明らかではありません。
残りのコントローラーとアクションは正常に機能しているようで、破損の問題は除外されています。
誰かが以前に同様の状況に遭遇したことがありますか? ポインタはありますか?