如何自定义我的查询..这是我在控制器中的当前代码:
class PostController extends AbstractActionController
{
private $userTable;
// CRUD
// retrieve
public function indexAction(){
return new ViewModel(
array(
'rowset' => $this->getPostsTable()->select(),
)
);
}
public function getPostsTable(){
if(!$this->userTable){
$this->userTable = new TableGateway(
'posts',
$this->getServiceLocator()->get('Zend\Db\Adapter\Adapter')
);
}
return $this->userTable;
}
}
如何命令结果下降?
以及如何使用该代码加入另一个表?
答案 0 :(得分:0)
首先,Zend框架是一个MVC框架。
表示您的数据对象访问必须位于模型层NOT IN控制器中。
你的PostController里面没有模型逻辑,这很糟糕。它可能会引发很多错误,你不会直接理解。
另外,在Controller中调用getServiceLocator是一种不好的做法,它将在Zf3中删除。这就是推荐使用模型层的原因。
对于您的问题,您必须创建一个这样的查询构建器:
$sql = new \Zend\Db\Sql\Sql($this->getAdapter());
$select = $sql->select()
->from('tableName')
->columns(array())
->join('tableName2', 'Your ON Clause')
->where(array('if you Have WhereClause'))
->order('Your column DESC');
我使用Doctrine,但我很确定(社区会证实这一点与否)这个例子可能有效。