我没有选择 - cakephp它在简单的应用程序中工作

时间:2013-06-11 13:29:00

标签: cakephp jquery-chosen

我是CakePHP,MVC和Web开发人员(JQuery等)的新手,尽管我已经有超过15年的非Web应用程序编程和一些PHP知识。

为了学习,我正在开发一个包含3个表(课程,教授,课程教授)的简单学校项目。

我已经“烘焙了所有”并获得了一个非常好的CRUD应用程序。

现在我正在努力改善使用Chosen-CakePHP所选择的harvesthq /提供的选择框用户友好性。

我已按照https://github.com/paulredmond/chosen-cakephp的说明安装和设置插件,但我不确定应该遵循哪些步骤才能使其正常工作。顺便说一句。我知道创建自定义类是可选的。

说实话,我预计修改后的/app/Controller/AppController.php足以看到新的选择框工作,但应用程序的工作方式与添加插件之前一样。

/app/Controller/AppController.php中包含的代码如下(删除了注释):

App::uses('Controller', 'Controller');

class AppController extends Controller {

    public $helpers = array('Chosen.Chosen');    

}

app / Config / bootstrap.php包含:

./...

CakePlugin::load('DebugKit');
CakePlugin::load('Chosen');

./...

我一直在谷歌搜索2天,但我不明白。

我是否需要修改bake生成的任何代码?我是否需要修改其他文件?

我想我在这个领域缺乏知识非常重要。如果您推荐我以前必读的阅读或练习,欢迎任何推荐。

任何迹象都表示赞赏。

感谢您的帮助, 伊万

2 个答案:

答案 0 :(得分:0)

我从未使用过您提及的插件,但请查看您提供的链接中的示例

(在视图中)

echo $this->Chosen->select(
    'Article.category_id',
    array(1 => 'Category 1', 2 => 'Category 2'),
    array('data-placeholder' => 'Pick categories...', 'multiple' => true)
);

使用的助手不是$this->Form->input,因为它伴随着烘焙,它是$this->Chosen->select。所以我的猜测是“是的,你需要修改bake生成的代码”。

尝试一下,如果它不起作用,请使用您为该视图尝试的代码更新您的问题,如果它给您任何(新的)错误。

答案 1 :(得分:0)

你真的不需要一个插件来为你的表单获得如此小的功能。

  1. 首先,您需要下载Chosen包。

  2. 打开您的 webroot 文件夹并将所有相关的js,css文件随附在软件包中

  3. 打开默认布局文件app / Views / Layouts / default.php(如果你“全部”应该是默认布局文件)

  4. 了解如何在此布局中将js和css文件插入Html Helper 语法很简单: 这段代码:

    echo $ this-> Html-> css('forms');

  5. 输出:

    <link rel="stylesheet" type="text/css" href="/css/forms.css" />
    

    类似于js文件..

    1. 将此代码添加到布局页脚

      $( “chzn选。”)选择();

    2. 或标题(但是你需要用document.ready;

      包装它
      1. 在烘焙视图文件中添加类.chzn-select以选择表单元素

        echo $ this-&gt; Form-&gt; input('Model.field',array(     'type'=&gt; '选择',     'multiple'=&gt;真正,     'class'=&gt; “chzn选” ));

      2. 如果你刚刚开始学习,那就要早点“全部烘焙”