Ced*_*gas 1 forms doctrine symfony1
当我尝试从表中编辑一个条目时,我得到了一个非常恼人的错误,在教程中他们总是使用getTable() - > find(),但是我需要验证登录的人是那个条目的所有者做:
在行动中:
public function executeEdit(sfWebRequest $request)
{
$id = $request->getParameter('id');
$userid = $this->getUser()->getGuardUser()->getId();
$ad = Doctrine_Core::getTable('BambinbazarArticles')->getMyAd($id, $userid);
$this->forward404Unless($ad, sprintf('Object bambinbazar_articles does not exist (%s).', $request->getParameter('id')));
$this->form = new BambinbazarArticlesForm($ad);
}
Run Code Online (Sandbox Code Playgroud)
在模型中:
public function getMyAd($id, $userid)
{
$q = $this->createQuery('c')
->where('c.id = ? ', $id)
->addWhere('c.userid = ? ', $userid);
return $q->execute();
}
Run Code Online (Sandbox Code Playgroud)
我试过它有没有 - >执行(),做了教义干净,清除缓存,重建模型,
始终得到相同的错误''%s'表单只接受"%s"对象.如果我使用Doctrine_Core :: getTable('BambinbazarArticles') - > find()它可以工作,但当然,我需要更多...
我对此变得疯狂.
execute()可以返回多行; 实际上,您将获得记录集,而不是表单所期望的单个对象.尝试获取单个对象,例如:
return $q->execute()->getFirst();
Run Code Online (Sandbox Code Playgroud)
要么
return $q->fetchOne();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3469 次 |
| 最近记录: |