2013-12-09 3 views
1

의이 세 모델 간단한 예를 들어 보자 : 관계 Article, User, Tag을 :컨트롤러가 모델 관계에 대해 알고 있어야합니까?

Article을 -> 하나 Author (User),
Article가 ->가 많은 Tags을.

기사를 나열 할 때 저자와 각 기사의 모든 태그를 얻고 싶습니다.

나는이 두 가지 작업을 수행 할 수 있습니다

  1. 컨트롤러의 관계 기사를 찾기위한 query을 구축 할 수 있습니다. getArticles, 정확히 같은 일 반환 :

    return Article::with(array('author', 'tags'))->where('...')->get();

$articles = Article::with(array('author', 'tags'))->where('...')->get();

  • Article 모델에서 사용자 지정 방법을 만들기 :이 같은 같을 것이다 laravel에서

    두 번째 경우에는 모든 관계 및 쿼리 작성이 모델에서 처리됩니다.

    제 질문은 컨트롤러가 모델 관계에 대해 알고 있거나 컨트롤러에서 숨겨져 있어야한다는 것입니다.

  • 답변

    2

    숨기기가 좋습니다. 다른 곳에서 동일한 작업을 수행해야하는 경우를 생각해보십시오. 그것이 컨트롤러에 있다면, 당신은 자신을 반복해야합니다. 모델에 있다면 모델 메소드를 다시 호출하면됩니다.

    관련 문제