在cakephp页面强制属于关系

我想强制加入cakephp的页面函数。 用户有消息,这意味着它将是属于用户的消息。 我必须在列表中显示它们,所以我需要在这里使用分页。 问题是它没有显示我我打算结合 我的代码模型的记录:在cakephp页面强制属于关系

$userId  = $this->Session->read('SESSION_ADMIN.id'); 

$this->helpers['Paginator'] = array('ajax' => 'Ajax');

$this->Message->bindModel(

array(

'belongsTo'=>array(

'Npo'=>array(

'className' => 'Npo',

'foreignKey' => 'reciever_id',

'fields' => 'Npo.username'

)

)

)

);

$this->paginate = array('conditions'=>array('Message.sender_id'=>$userId,'Message.sender'=>'Admin'),

'order' => array('Message.modified DESC'),

'limit' =>'1'

);

$sentMsg = $this->paginate('Message');

//$sentMsg = $this->Message->find('all');

pr($sentMsg);die();

当我取消对FIND声明它为我的纪录,但在PAGINATE的情况下,它不。 另外,它并没有显示我在页面查询中的连接,但它在计数记录。 任何人都有一个想法。我不想使用paginate加入here.Is有办法强制一个属于这里吗?

问候 人士Himanshu夏尔马

回答:

你试过:

$this->Message->bindModel(

array(

'belongsTo'=>array(

'Npo'=>array(

'className' => 'Npo',

'foreignKey' => 'reciever_id',

'fields' => 'Npo.username'

)

)

), false // Note the false here!

);

的分页程序实际上执行两个查询:一个来计算记录的总数,以及一个真正获取所需的记录。默认情况下,在每个查询后重置使用bindModel()即时创建的关联。它依赖于Cake哪个查询首先出现,但我相信在你的情况下它是count查询;没有关联就留下实际的结果查询。在bindModel()的第二个参数上设置false,可以防止关联在第一个查询后重置。

以上是 在cakephp页面强制属于关系 的全部内容, 来源链接: utcz.com/qa/263413.html

回到顶部