Php 具有HABTM关系的用户配置文件中的标签式技能

Php 具有HABTM关系的用户配置文件中的标签式技能,php,cakephp,has-and-belongs-to-many,Php,Cakephp,Has And Belongs To Many,在web应用程序中,我正在构建一个用户配置文件,用户可以在其中列出他们的技能。我想要StackOverflow在发表文章时所具有的那种功能,你可以在标签输入中键入标签,选择已经存在的标签,如果它们还不存在,就创建它们 目前,我在页面上出现了一个选择框,其中包含用户当前技能的id。我通过以下方式实现这一目标: // ProfilesController.php $skills = $this->Profile->ProfilesSkill->find('list'); // e

在web应用程序中,我正在构建一个用户配置文件,用户可以在其中列出他们的技能。我想要StackOverflow在发表文章时所具有的那种功能,你可以在标签输入中键入标签,选择已经存在的标签,如果它们还不存在,就创建它们

目前,我在页面上出现了一个选择框,其中包含用户当前技能的
id
。我通过以下方式实现这一目标:

// ProfilesController.php
$skills = $this->Profile->ProfilesSkill->find('list');

// edit.ctp
<?php echo $this->Form->input('Skill', array('value' => $skills)); ?>
//profilescoontroller.php
$skills=$this->Profile->ProfilesSkill->find('list');
//编辑.ctp

不过,我不知道如何进一步发展。首先,应该显示技能的
名称
字段,而不是他们的
id
,我对此感到困惑,因为按照Cake的惯例,默认情况下它将使用
名称
字段,即使它不是。其次,当我将我的技能输入我的个人资料时,蛋糕应该自动在
profiles\u skills
表中输入所有必需的条目。我怎样才能做到这一点呢?

这个解决方案非常简单,尽管它需要大量的工作

首先你需要一个标签系统。您可以自己构建一个(像任何habtm关系一样),或者使用类似的插件

对于第二部分,该函数称为“自动完成”。它基本上是每次在表单字段中输入字母时的ajax调用。有很多教程,例如:


希望这能为您指明正确的方向

我建议您将此问题分解为更小的问题,并提供有关单个问题的更多详细信息。