无法检索记录999

时间:2010-07-04 20:24:18

标签: cakephp

在我的示例数据库表中,我有一个帖子ID为999的记录。 我有几行代码来检索post id 999的记录:

function viewing($sid){    
$this->Testing->post_id=$sid;
$this->set('posts', $this->Testing->read());
}

但是当我修改代码时,没有记录可以从id为999的帖子中检索记录:

function viewing($sid){ 
$sid=999;   
$this->Testing->post_id=$sid;
$this->set('posts', $this->Testing->read());
}

你能告诉我帮忙吗?

3 个答案:

答案 0 :(得分:3)

您想要设置model :: id属性,而不是post_id。

$这 - > Site1-> ID = $ SID;

答案 1 :(得分:2)

我认为你弄乱了条款和功能。首先,设置Site1模型的ID。然后,您尝试从测试模型中读取记录并在记录中设置post_id。正确的代码应如下所示:

function viewing($sid){ 
  $sid=999;   
  $this->Post->id=$sid;
  $this->set('post', $this->Post->read());
}

或者更简短,它将是:

function viewing($sid){ 
  $sid=999;   
  $this->set('post', $this->Post->read(null, $sid));
}

但是假设您想获得帖子,可能实际的代码应该是:

function viewing($sid){ 
  $sid=999;   
  $this->set('post', $this->Posts->fund('all', array('conditions'=>array('post_id'=>$sid))));
}

或类似的东西。我想首先你应该看看CakePHP CookbookCakePHP API

答案 2 :(得分:0)

最好使用表格$this->Post->read(null, $sid)

如果要控制关联表的检索,请使用$this->MyModel->contain()

E.g。

$this->Post->contain('Testing') //(Post & Testing but not Site1)

$this->Post->contain('Testing','Site1.someValue') //(Post & Testing and Site1.someValue)

我认为您还应该仔细阅读http://book.cakephp.org/view/78/Associations-Linking-Models-Together&上的手册部分。 http://book.cakephp.org/view/73/Retrieving-Your-Data