我是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生成的任何代码?我是否需要修改其他文件?
我想我在这个领域缺乏知识非常重要。如果您推荐我以前必读的阅读或练习,欢迎任何推荐。
任何迹象都表示赞赏。
感谢您的帮助, 伊万
答案 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)
你真的不需要一个插件来为你的表单获得如此小的功能。
首先,您需要下载Chosen包。
打开您的 webroot 文件夹并将所有相关的js,css文件随附在软件包中
打开默认布局文件app / Views / Layouts / default.php(如果你“全部”应该是默认布局文件)
了解如何在此布局中将js和css文件插入Html Helper 语法很简单: 这段代码:
echo $ this-> Html-> css('forms');
输出:
<link rel="stylesheet" type="text/css" href="/css/forms.css" />
类似于js文件..
将此代码添加到布局页脚
$( “chzn选。”)选择();
或标题(但是你需要用document.ready;
包装它在烘焙视图文件中添加类.chzn-select以选择表单元素
echo $ this-&gt; Form-&gt; input('Model.field',array( 'type'=&gt; '选择', 'multiple'=&gt;真正, 'class'=&gt; “chzn选” ));
如果你刚刚开始学习,那就要早点“全部烘焙”