내가 대답을 발견했다. 카테고리 이름 (또는 많은 카테고리 이름)으로 영화를 찾고 싶기 때문에 조금 다릅니다. category_id로 영화를 찾는 것이 더 쉬웠습니다. 누군가가 도움이된다고 여기에서 알게되면 :
$category_id = 13;
$films = ORM::factory('film')
->select('category_id')
->join('films_categories')
->on('films_categories.film_id', '=', 'film.id')
->where('category_id', '=', $category_id)
->find_all();
foreach($films as $f)
echo $f->title . " " . $f->category_id . "<br/>";
정확히 어떻게 작동하는지 알지 못합니다. 나는 이것을 우연히 발명했다.
->select('category_id')
또는
->select('*')
을이 그것을 제공 라인과 오류없이 :
Kohana_Exception [ 0 ]: The category_id property does not exist in the Model_Film class
이유 (참여)하지 않는이 라인이 필요한 이유 누군가가 내게 말할 수 그리고 경우 select ('*')없이 전체 테이블을 조인 할 수 있습니까?
$films = ORM::factory('film')
->join('films_categories')->on('films_categories.film_id', '=', 'film.id')
->join(array('categories', 'category'))->on('category.id', '=', 'films_categories.category_id')
->where('film.title', '=', $film_title)
->where('category.name', '=', $category_name)
->find_all();
을 그리고 난 당신이 열 테이블을 지정하지 않은 원인, 쿼리에
->select('category_id')
필요 추측 : 당신은 여전히 카테고리 이름으로 영화를 필터링 할 경우
작동하지 않습니다. $ category_name은 변수가 아닌 열 이름으로 처리됩니다. 나는 이것과 비슷한 테이블을 얻을 필요가있다 : 가입 후 http://www.w3schools.com/sql/sql_join_left.asp – swoorn