我正在开发cakephp2.5中的一个网站。我有两个插件Webmaster
和debugKit
。我写的时候
CakePlugin::load('Webmaster', array('bootstrap' => false, 'routes' => false));
CakePlugin::load('webmaster');
CakePlugin::load( 'DebugKit');
该网站在本地系统上正常运行,但在实时服务器上无法运行。但是,如果我删除上述Webmaster
之一,则会在本地系统和实时
Error: The application is trying to load a file from the webmaster plugin
Error: Make sure your plugin webmaster is in the app\Plugin directory and was loaded
我也试过但没有运气。从2天开始苦苦挣扎。还看到了这些链接 link1 link2
这是我的WebmasterAppController
<?php
App::uses('AppController', 'Controller');
class WebmasterAppController extends AppController{
public $theme= "beyond";
//public $layout=NULL;
public function beforeFilter(){
//$this->Auth->allow('login');
$this->Auth->loginAction= array('controller'=>'users', 'action'=>'login');
$this->Auth->loginRedirect= array('controller'=>'users', 'action'=>'index');
$this->Auth->loginError= 'Invalid Email/Password!';
$this->Auth->authError= 'You are not authorised to access!';
$this->Auth->logoutRedirect= array('controller'=>'users', 'action'=>'login');
AuthComponent::$sessionKey = 'Auth.Webmaster';
//we don't need to load debug kit
$this->Components->unload('DebugKit.Toolbar');
parent::beforeFilter();
}
}
这是AppController
class AppController extends Controller{
public $cakeDescription = "CakePhp | ";
public $theme = "alpus";
public $ext = 'html';
public $helpers = array('NiceForms', 'coolFun');
public $components = array(
'DebugKit.Toolbar',
'Common',
'Session',
'Auth' => array(
'loginRedirect' => array(
'controller' => 'pages',
'action' => 'dashboard'
),
'logoutRedirect' => array(
'controller' => 'users',
'action' => 'login',
),
'authenticate' => array(
'Form' => array(
'passwordHasher' => 'Blowfish',
'fields' => array('username' => 'email')
)
),
'sessionKey' => 'Admin'
)
);
public function beforeFilter(){
if (isset($this->params['prefix']) && $this->params['prefix'] == 'admin') {
$this->theme = 'smart';
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'admin_login', 'plugin' => false);
}
$this->Auth->allow('register');
}
}
编辑1:
对于cakephp 3.0,我们可以使用
在AppController.php中public function beforeFilter(Event $ event){
$ this-&gt; Auth-&gt; sessionKey =&#39; Auth.User&#39 ;;
}
为前端和后端设置不同的sessionKey。
答案 0 :(得分:1)
为什么对同一个插件有多次加载调用?每个插件应该只有一个!
话虽如此,请注意你的外壳,第二个CakePlugin::load()
来电使用webmaster
代替Webmaster
。插件名称应以大写字母开头,就像对应的目录名一样。
您的本地文件系统很可能不区分大小写,因此即使外壳不匹配也可以找到插件目录。
更新看起来我最初错了,如果CakePHP会告诉您在没有添加webmaster
电话的情况下加载插件CakePlugin::load('webmaster')
,那么您必须在代码中的其他地方使用了小写的webmaster
。