我尝试加入。 但是我不能选择返回的列。
public function getDonneesProjet($idProjet)
{
$idProjet = (int) $idProjet;
return $this->tableGateway->select(function(Select $select) use ($idProjet) {
$select ->join('rapport', 'rapport.id = donnee_factuelle.rapport_id', array('date'))
->where("projet_id = $idProjet");
})->toArray();
}
我的表格中的所有列都是“donnee_factuelle”。 但我不知道如何检索表格“rapport”的“日期”列。
一个想法?
由于
答案 0 :(得分:0)
请参阅下面的代码段:
public function fetchAll() {
$select = $this->tableGateway->getSql()->select()
->join('join_table', 'gateway_table.id=join_table.link_id', array ('viewfieldname' => 'joinfieldname'));
$resultSet = $this->tableGateway->selectWith ( $select );
return $resultSet;
}
答案 1 :(得分:0)
对您的查询进行这些更改 - (删除->toArray()
)
public function getDonneesProjet($idProjet)
{
$idProjet = (int) $idProjet;
return $this->tableGateway->select(function(Select $select) use ($idProjet) {
$select ->join('rapport', 'rapport.id = donnee_factuelle.rapport_id', array('date'))
->where("projet_id = $idProjet");
}); //->toArray() is removed.
}
由于这是tablegateway,您需要在Primary(Main)Model文件中添加date
表的属性(rapport
)。
例如:
class MODEL_NAME {
//other properties
public $date;
public function exchangeArray($data) {
//other properties
$this->date = (!empty($data['date'])) ? $data['date'] : null;
}
}
只有这样你才能获得对象中的date
属性及其值。
我希望它有所帮助。