具有HABTM关系的用户个人资料中的类似标记的技能

时间:2013-02-17 17:20:33

标签: php cakephp has-and-belongs-to-many

在我正在构建的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表格中输入所有必填项。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

解决方案很简单,虽然它非常有用。

首先,您需要一个标签系统。你可以自己构建一个(比如任何habtm-relation),或者使用像https://github.com/CakeDC/tags这样的插件

对于第二部分,该功能称为“自动完成”。每次在表单字段中输入一个字母时,它基本上都是一个ajax调用。有很多教程,例如:http://blogfreakz.com/cakephp/cakephp-jquery-autocomplete-tutorial/

希望这能指出你正确的方向