我正在尝试创建plugin,这是我的文件夹布局;
在bootstrap.php中
CakePlugin::load('ContactManager');
在routes.php中
Router::connect(
'/ct/',
array(
'plugin' => 'ContactManager',
'controller' => 'Contacts',
'action' =>'index'
)
);
ContactManagerAppController.php
<?php
class ContactManagerAppController extends AppController {}
ContactsController.php
<?php
class ContactsController extends ContactManagerAppController {
public $uses = array('ContactManager.Contact');
public function index() {
//...
}
}
ContactManagerAppModel.php
<?php
class ContactManagerAppModel extends AppModel {}
Contact.php
class Contact extends ContactManagerAppModel {}
如何在浏览器中显示index.ctp index.ctp
<?php echo 'hello'; ?>
请求http://localhost/cakephp/ct/ContactManager/Contacts
会丢失控制器错误,而不是我的插件控制器索引:
答案 0 :(得分:0)
您应该可以从/contact_manager/contacts
访问插件的通讯录控制器(无需设置路由)。因此,根据您的问题的外观,绝对URL应为: -
http://localhost/cakephp/contact_manager/contacts
如果这不起作用,那么插件的设置有问题。确保插件文件可读,文件名和类都正确。你的插件结构看起来不错。
如果上述URL工作(然后才有效),您可以考虑重新路由它。要做到这一点,你需要做这样的事情(最好在/app/Config/routes.php
): -
Router::connect(
'/ct/',
array(
'plugin' => 'contact_manager',
'controller' => 'contacts',
'action' =>'index'
)
);
如果路线不起作用,请尝试检查路线文件中的其他地方是否没有覆盖它。
你应该在你的路线中使用蛇案(例如&#39; contact_manager&#39;)而不是驼峰案例(例如&#39; ContactManager&#39;)参数。
答案 1 :(得分:0)
这是我的答案---&gt;谢谢所有 http://i.imgur.com/Ju8mq4D.jpg
控制器中的:
AppController.php
ContactsController.php
模型中的
AppModel.php
Contact.php
在“查看/通讯录”
中index.ctp
应用程序/配置/ routes.php文件
Router::connect('/ct', array('plugin'=>'ContactManager', 'controller' => 'contacts', 'action' => 'index'));
应用程序/配置/ bootstrap.php中
CakePlugin::load(array('ContactManager' => array('bootstrap' => true, 'routes' => true) ));