2014-04-14 2 views
1

MVC에 응용 프로그램이 있습니다. ID로 사용자 이름을 가져오고 싶습니다. 나는이PHP에서 데이터 맵퍼 변수에 액세스 하시겠습니까?

function getNameById($id = null) { 
    if ($id !== null) { 
     // get name by ID from database 
     return $id; 
    } else { 
     // get name by SESSION ID from database 
     return $id; 
    } 
} 

을 할 수있는 기능을 가지고 있지만 나는 사람들이 함수를 다음과 같이 호출을 참조하십시오

$user = new User(); 
$user->getNameById(); 

하지만이 같은 진술 경우 수행하는 방법을 모르겠어요. 나는 변수에 광산을 넣는다. 이게 정확한 사용인가?

$user = new User(); 
$fname = $user->getNameById(); 
+0

의 경우를 들어

, ?? – Steve

+0

값을 반환하는 것을 이해합니다. 'if ($ this-> userMapper-> getNameById() ==='Bill ')'와 같은 if 문을 수행하는 것이 올바른 MVC입니까? 템플릿에서 액세스하려고합니다. – user1475632

+0

'this'는 현재 클래스를 참조하는 것입니다 ... 그래서 클래스가 아닌 클래스를 생성하고 미적 변수에 vale를 할당합니다. 예 : class a {public function getUserNameById() {return "your name";}} 그런 다음 $ object = new a();와 같은 클래스의 객체를 만듭니다. $ username = $ object-> getUserNameById()와 같은 함수를 호출하십시오. .. 이제 끝냈습니다. –

답변

2

이 특정 사례에서는 올바르게 사용하고 있습니다. 당신이가 당신에게 그것으로 무엇을 연료 소모량은 값을 반환

$user = new User(); 
if($usernames = $user->getNameById(1)) { 
    //find and store into $usernames 
} 
else { 
} 
+0

좋습니다. 나는 그것을 컨트롤러에서 호출하고있다. 컨트롤러에서 데이터 매퍼를 호출해야합니까? 아니면 제가 모델을해야합니까? – user1475632

+0

모델이 그렇게하도록하는 것이 좋습니다. Data Mapper는 모델과 데이터베이스 사이에 있습니다. 컨트롤러 -> 모델 -> 데이터 맵퍼 -> 물리 데이터베이스. –