好的,我有两张桌子。一个称为Properties
,另一个称为PrInfo
。
属性是基表,PrInfo是另一个包含额外信息的表。
我想加入他们,以便在网站上显示信息。
$query = Properties::query()
->leftJoin('PrInfo','pr.pr_id = Properties.id','pr')
->execute();
在我的脑海中,每个查询的索引都应该与PrInfo表中的一行连接,因为声明了" pr.pr_id = Properties.id"
但是当我输入" print_r($ query [1]);"时,我可以在执行的查询中看到 确实包含了pr_info表,但我不确定它是否与属性表中的行匹配。
我尝试过做print_r($query[1]['PrInfo']
,但我发现错误。
有什么想法吗?
中有以下内容
protected '_hasManyToManySingle' => null
protected '_initialized' =>
array (size=2)
...
protected '_sources' => null
protected '_schemas' => null
protected '_behaviors' => null
protected '_lastInitialized' =>
object(PrInfo)[51]
...
protected '_lastQuery' => null
protected '_reusable' => null
protected '_keepSnapshots' => null
protected '_dynamicUpdate' => null
protected '_namespaceAliases' => null
protected '_modelsMetaData' => null
protected '_errorMessages' => null
答案 0 :(得分:0)
您应该在模型中定义正确的关系,而不是使用leftJoin()
手动加入:
class Properties extends Model
{
...
public function initialize()
{
$this->hasMany("id", "PrInfo", "pr_id");
}
}
详细了解以下内容: http://docs.phalconphp.com/en/latest/reference/models.html#relationships-between-models