我遇到了一个奇怪的问题,在控制器中从表中传递了一条记录,但视图最终显示了整个表。
我有大量的日志记录,并且很确定控制器正在通过 $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 调用。但是,尚不清楚这些电话来自何处。
其余的控制器和操作似乎运行良好,排除了任何腐败问题。
有没有人遇到过类似的情况?任何指针?