저는 CakePHP를 기반으로 구축 된 여러 개의 작은 웹 사이트를 관리하기위한 간단한 CMS를 만들었습니다. 플러그인을 1.3에서 2.0으로 성공적으로 마이그레이션 한 후 Cake를 최신 버전 2.1.2로 업데이트 한 후 AuthComponent에 문제가 발생했습니다.AuthComponent에 대한 사용자 정의 테이블 정의
응용 프로그램이 대부분의 테이블을 플러그인과 공유하므로 클래스 이름 중복을 피하기 위해 플러그인의 클래스 이름 앞에는 모두 플러그인 이름이 접두사로 붙습니다. 따라서 메인 애플리케이션에 UsersController
, 내 CMS 플러그인에 PluginNameUsersController
(또는 PostsController
및 PluginNamePostsController
)이있는 경우가 있습니다. 플러그인 모델은 $useTable
을 사용하여 올바른 데이터베이스 테이블을 찾습니다 (따라서 PluginNamePostsController
은 여전히 posts
을 사용함). 2.1로 업그레이드 한 이후
. * 케이크 AuthComponent
의 지점은 대신 users
에 참조하는 존재하지 않는 pluginname_users
테이블을 예상대로 작동을 중단했다.
AuthComponent
에 대한 사용자 정의 테이블을 정의 할 수 있습니까? 아니면 다른 방법으로이 기능을 사용할 수 있습니까? 또한이 동작이 예상됩니까?
public $components = array(
'Session', 'RequestHandler',
'Auth'=> array(
'loginAction' => array(
'controller' => 'pluginname_users',
'action' => 'login',
'plugin' => 'pluginname'
),
'loginRedirect' => array(
'controller' => 'pluginname_posts',
'action' => 'index',
'plugin' => 'pluginname'
),
'authenticate' => array(
'Form' => array(
'userModel' => 'PluginNameUser',
'fields' => array('username', 'password')
)
)
)
);
사실,'PluginNameUser' 모델에서'$ table'을 정의하는 것은 필요하지 않은 것처럼 보입니다. 아마도 나는 더 큰 존재하지 않는 문제에 대해 눈이 멀어져서 아마도'userModel'의 접두어를 플러그인의 이름으로 무시했을 것입니다. 접두사'userModel'에 Auth가 다시 시작됩니다. 도와 주셔서 감사합니다! – mensch