1
Phalcon에서 조인을 이해하는 데 어려움이 있습니다. 내가 심지어 조인을 사용하거나 관련 테이블이 어떻게 든 자동으로 매핑되는지 여부는 확실하지 않습니다. 나는 항상 과거의 ORM 작업을 피 했으므로 개념이 조금 새로운 것입니다! 페이지와 섹션PhalconPHP 데이터베이스 ORM에서 조인
class Pages extends \Phalcon\Mvc\Model {
public $page_id;
public $page_section_id;
public $page_title;
public $page_url;
public $page_description;
public $page_tags;
public $page_content;
public $page_time;
public $page_author;
public $page_views;
public function initialize() {
$this->belongsTo('page_author', 'users', 'id');
$this->belongsTo('page_section_id', 'sections', 'section_id');
}
}
및
class Sections extends \Phalcon\Mvc\Model{
public $section_id;
public $section_title;
public $section_url;
public $section_description;
public $section_tags;
public function initialize(){
$this->hasMany('section_id', 'pages', 'page_section_id');
}
}
내가 안 그런 다음 내 컨트롤러에서 나는 $this->modelsManager->createBuilder()
을 사용하고
$pages = $this->modelsManager->createBuilder()
->from('Baseapp\Backend\Models\Pages')
->leftJoin('Baseapp\Backend\Models\Sections', 'section.section_id = Baseapp\Backend\Models\Pages.page_section_id', 'section')
->orderBy('page_time DESC')
->getQuery()
->execute()
->toArray();
print_r($pages);exit; // <- let's see what we get here
이 -
나는 두 개의 테이블이 그것을 밖으로 조인 할 수있을 것 같습니다! 뷰에서
내가
{% for page in pages %}
<div class="item">
<div class="content">
<div class="header">
{{ page.page_title }} - {{ page.section_title }}
</div>
</div>
</div>
{% endfor %}
그러나 여기에서 큰 문제를 사용할 것, 그것은 단지 반환 페이지 데이터가 아닌 관련 섹션 데이터 것입니다. 즉, 조인은 작동하지 않는 것 같습니다.
그래서 간단한 조인을 수행하거나 조인이 중복되는 것을 간과하는 더 나은 방법이 있습니까? 모델에서
http://stackoverflow.com/questions/21715835/loading-models-with-inner-join – Phantom