loadUserByUsername
은 UserProviderInterface
에 선언 된 메소드의 구현이므로 PHP는이 경우 오류가 발생하기 때문에 인수 목록을 변경할 수 없습니다.
(비트 hackish) username
하고 확인해야 ID
를 포함 loadUserByUsername
패스 배열의 구현에 : 나는 두 가지 솔루션을 참조하십시오. php가 강력하게 타입 화되지 않았기 때문에 문자열 (사용자 이름) 대신에 배열을 loadUserByUsername
메쏘드에 전달할 수 있기 때문에 이것은 조금 hackish하다.
public function loadUserByUsername($params)
{
$id = $params['id'];
$username = $params['username'];
//now do whatever you need to do with $id and $username
}
ID
가 확인하는 경우, 그냥 username
매개 변수와 함께 일반 loadUserByUsername
메소드를 호출 그렇다면, 확인합니다 (username
및 ID
의)과 첫 번째 단계에서 배열을 취할 것입니다 자신의 loadUserByParams
방법을 쓰기
public function loadUserByParams($id, $username)
{
//check if $id is ok;
if ($id_is_ok) {
return $this->loadUserByUsername($username);
}
}
의견을 보내 주셔서 감사합니다.하지만 refreshUser() 메소드의 경우에는 어떻게해야합니까? 이 메서드는 여전히 loadUserByUsername을 호출해야하며 거기에 추가 인수를 전달하는 방법을 알지 못합니다. – undefinedman
''refreshUser''는''UserInterface'' 유형의 인수 하나를 허용합니다. 내부적으로''refreshUser'' 메쏘드 구현을 작성하고''loadUserByParams''를 호출 할 수 있습니다 - 주석에 답하기 :''refreshUser'' 메쏘드는''loadUserByUsername'' 메쏘드를 호출 할 필요가 없습니다 –
모든 것은 괜찮은 것처럼 들리지만 여전히 내 생각에 내부적으로 호출되었으므로 refreshUser 메서드를 호출 해야할지 모르겠습니다. SimpleFormAuthenticatorInterface의 authenticateToken() 메서드 내에서 loadUserByUsername으로 원하는 모든 작업을 수행 할 수 있기 때문에 loadUserByParams() 메서드를 호출 할 수있는 것처럼 refreshUser를 호출하는 방법을 여전히 알지 못합니다. – undefinedman