간단한 템플릿 시스템을 만들려고합니다.Laravel 4 : 교차 모델 옵션과의 묵직한 관계
저는 Page
, Template
및 Templatevariable
입니다.
따라서 Page
은 Template
이고, Template
은 Templatevariables
입니다. 그러나 Templates
에는 몇 가지가 있지만 Pages
에는 많은 숫자가 Templatevariables
입니다.
template_id
과 page_id
테이블에 모두 Page
이 속합니다.
내 문제는, 나는 이런 일을 Eloquent와 함께하는 방법을 모른다. Template
모델에서, 내가 할 경우이 :
public function variables() {
return $this->hasMany('Templatevariable');
}
이 모든이의 Templatevariables
가 반환 Template
의 Page
에 특정하지. 나는 분명히 그것을 원하지 않는다. 나는 (내 컨트롤러) 같은 것을 할 수 있도록하려면 :
public function show($id) {
$page = Page::find($id)
$template = $page->template;
foreach($template->variables as $variable)
$data[$variable->name] = $variable->value;
$data['page'] = $page;
return View::make($template->view, $data);
}
나는이 모델에 자동으로 자료를 만들기 위해 매우 가능하다 상상,하지만 난 방법을 알아낼 수 없습니다.
감사합니다.
죄송합니다. 잘못 입력하면 죄송합니다. 여기에 처음 게시하는 경우입니다.
두 번째 솔루션은 작동이 있기 때문에 내가 할 수있는 : 쿼리 할 때
는또는을 (템플릿 테이블이
page_id
포함되어있는 경우 당신은 또한 직접->where('page_id', $this->page_id)
을 사용할 수 있습니다) 'Page' id를 직접 전달하면됩니다. 첫 번째 해법에서,'Template'이 여러개의'Pages'에 의해 사용될 수 있기 때문에'Template'이 속해있는'Page'를 알 수 없습니다. 내 말은 – Ricaz입니다. 나는 설치/쿼리가 훨씬 간단한 방법으로 수행 될 수 있다고 생각합니다. 하지만 어떻게 말할 수는 없어요 ... – lukasgeiter