创建插件cakephp并在浏览器中使用它

时间:2015-06-15 06:14:49

标签: cakephp cakephp-2.0

我正在尝试创建plugin,这是我的文件夹布局;

Folder layout

在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会丢失控制器错误,而不是我的插件控制器索引:

404 for plugin url request

2 个答案:

答案 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) ));