0

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

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

我已经“全部烘焙”并得到了一个很好的 CRUD 应用程序,它运行良好。

现在我正在尝试通过使用Chosen-CakePHP来提高 Harveshq/chosen 提供的选择框的用户友好性。

我已按照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 天,但我不明白。

我需要修改烘焙生成的任何代码吗?我需要修改任何其他文件吗?

我想我在该领域缺乏知识是非常相关的。如果您向我推荐一个重要的先前阅读或练习,欢迎任何推荐。

任何迹象都将不胜感激。

谢谢你的帮助,伊万

4

2 回答 2

0

您实际上并不需要插件来为您的表单获得如此小的功能。

  1. 首先你需要下载一个选择的包。

  2. 打开你的webroot文件夹,把所有依赖的js、css文件放在那里

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

  4. 在此处阅读有关在布局中插入 js 和 css 文件的信息Html Helper 语法很简单:这段代码:

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

输出:

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

类似的js文件..

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

    $(".chzn-select").chosen();

或标题(但你需要用document.ready包装它;

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

    echo $this->Form->input('Model.field', array('type' => 'select', 'multiple' => true, 'class' => 'chzn-select' ));

如果您刚开始学习,那么“烤所有”还为时过早

于 2013-06-12T01:12:42.850 回答
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 生成的代码”。

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

于 2013-06-11T14:41:12.603 回答