在我的示例数据库表中,我有一个帖子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());
}
你能告诉我帮忙吗?
答案 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 Cookbook和CakePHP 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