在我正在构建的Web应用程序中,用户有一个可以列出其技能的配置文件。我想要StackOverflow在发帖时的功能,你可以在标签输入中输入标签并选择已经存在的标签,如果它们尚不存在则创建它们。
目前,我的页面上出现了一个选择框,其中id
用户当前技能为值。我通过以下方式实现这一目标:
// ProfilesController.php
$skills = $this->Profile->ProfilesSkill->find('list');
// edit.ctp
<?php echo $this->Form->input('Skill', array('value' => $skills)); ?>
但是,我不知道如何进一步发展。首先,应该显示技能的name
字段而不是id
,我很困惑,因为按照Cake的约定,它默认会使用name
字段,甚至虽然不是。其次,当我将自己的技能输入我的个人资料时,Cake应自动在profiles_skills
表格中输入所有必填项。我怎样才能做到这一点?
答案 0 :(得分:0)
解决方案很简单,虽然它非常有用。
首先,您需要一个标签系统。你可以自己构建一个(比如任何habtm-relation),或者使用像https://github.com/CakeDC/tags这样的插件
对于第二部分,该功能称为“自动完成”。每次在表单字段中输入一个字母时,它基本上都是一个ajax调用。有很多教程,例如:http://blogfreakz.com/cakephp/cakephp-jquery-autocomplete-tutorial/
希望这能指出你正确的方向