CakePHP插件实现不路由

时间:2012-10-25 11:05:12

标签: cakephp plugins

我正在尝试为CakePHP(CakePHP 2.2.3)编写一个名为LinkElement的插件,该插件可以获取一个url并将一个渲染元素交还。我的示例使用了Ajax选项卡表(如果有更好的方法可以这样做,请说)。我无法通过网址加载它。

示例:

本地主机/ LinkElement /链接/

抛出:

Error: LinkElementController could not be found.

Error: Create the class LinkElementController below in file: app\Controller\LinkElementController.php

<?php
class LinkElementController extends AppController { }

我的布局如下:

/app
    /Plugin
        /LinkElement
            /Controller
                LinkElementAppController.php
                LinksController.php
            /Model
                LinkElementAppModel.php
            /View
                Links/
                    index.ctp

LinkElementAppController.php

<?php class LinkElementAppController extends AppController { }

LinksController.php

<?php App::uses('LinkElementAppController', 'LinkElement.Controller');

class LinksController extends LinkElementAppController {}

LinkElementAppModel.php

<?php class LinkElementAppModel extends AppModel {}

Links / index.ctp(只是一个假人,直到我可以使URL工作)

<h2>Working</h2>

也是routes.php

CakePlugin::routes();
CakePlugin::load(array('LinkElement'));

我意识到这可能很简单,但我现在看不到它,看其他答案并没有帮助。

1 个答案:

答案 0 :(得分:2)

您不应该在网址中使用大写字母。 :)

在插件中访问控制器的Cake方法是使用下划线表示法:

/plugin_name/controller_name/action

所以在你的情况下:

localhost/link_element/links/<action>

参考:http://book.cakephp.org/2.0/en/plugins.html#plugin-tips