2014-04-29 3 views
1

나는 웅변적인 orm을 사용할 때 컨트롤러 또는 모델에 데이터베이스 로직을 저장할 위치를 결정하려고합니다.Laravel - Eloquent 코드 위치 - 컨트롤러 또는 모델

public function postAdd(){ 
$amodel=new myModel(); 
$amodel->name=Input::get('name'); 
$amodel->save(); 
$id=$amodel->id; 
} 

가이드는 그러나이 논리 모델보다는 컨트롤러에 방법 내부에 가지 말았어야 사용하는 말을하는 방법이다 : 나는 다음과 같은 방법을 컨트롤러에서

? 위의 내용은 여전히 ​​데이터베이스에서 추상화를 제공하지만 내가 확신 할 수없는 비트는 재사용이 가능한지 여부 또는 어쩌면 그렇지 않은 것일 수 있습니다.

public function postAdd(){ 
$amodel=new myModel(); 
$id = $amodel->addPost(Input::get('name')); 
} 

그래서 나는이 작업을 수행하는 모델을하는 방법에 정보를 전달할 :

은 따라서 다음을 할 수있는 더 좋은 옵션이 될 것이다. 이렇게하면 코드 줄을 많이 업데이트하지 않고 필요에 따라 모델 메서드를 변경하고 다시 사용할 수 있습니다.

대답은 간단히 '예, 좋습니다'라고 말하면 좋을 것입니다.이 경우 ORM을 사용할 때 표준 연습에 관심이 있습니다.

+0

'구성 요소 상호 작용'섹션을 자세히 읽어보십시오. http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller –

답변

1

컨트롤러의 책임은 모델에 대한 UI 요청을 처리하고 위임하는 것입니다. 그래서 마른 체형이어야합니다. 책임 소재에 필요한 코드 만 포함해야합니다. 따라서 코드를 모델로 이동해야하는 이유, 또는 더 나은 Laravel과 같은 솔루션은이 경우 리포지토리를 사용하는 것입니다. (link)