1

大家好,当点击我页面上的链接时,它没有携带id从进入template页面时的链接view,所以当 sql 查询数据库时,它正在查询这个

SELECT `Field`.`name`
FROM `pra`.`fields` AS `Field`
LEFT JOIN `pra`.`templates` AS `Template` ON (
    `Field`.`template_id` = `Template`.`id`)
WHERE `template`.`id` IS NULL

数据库说 id 应该是 =2

这是视图功能的代码

$fields = $this->Field->find('all',
           array('fields'=>array('name','template_id'),
                 'conditions' => array('template_id' =>  $this->Auth->user('template.id'))));

$this->set('field', $fields);

更新的代码,template_id 仍然等于 null

硬编码后它可以正常工作,这条线有问题$this->Auth->user

4

3 回答 3

1

您可以尝试使用以下代码:

$fields = $this->Field->find('all', 
           array('fields'=>array('name'),
                 'conditions' => array('Field.template_id' =>  $this->Auth->user('template_id'))
                 )
                            );

$this->set('field', $fields);

请确保当前登录的用户必须有任何template_id值。请询问它是否不适合您。

于 2012-08-08T04:52:05.367 回答
0

通过执行以下操作检查find调用结果debug

debug($fields);

这将向您显示查询返回的数据。您可以将其添加到操作方法的末尾。

如果结果为空,请仔细检查会话身份验证键中存储的值。您可以通过使用debug($_SESSION)或使用CakePHP DebugKit转储会话来做到这一点。调试工具包在屏幕右上角为您提供了一个小工具栏,可让您查看会话信息等。

于 2012-08-08T04:52:55.010 回答
0
function view($name){

    $this->set('title_for_layout', 'Create Template');
    $this->set('stylesheet_used', 'homestyle');
    $this->set('image_used', 'eBOXLogoHome.jpg');
    $this->layout='home_layout';

$fields = $this->Template->Field->find('list',array( 
          'fields'=> array('name'),
          'conditions' => array(
          'template_id'=> $name)));
$this->set('field', $fields);


}

它没有传递参数的值

于 2012-08-08T09:50:04.897 回答