如何控制显示在$ form-> input中的内容(文本)?

问题描述:

人。 我开始使用CakePHP和有使用后审查本教程( http://book.cakephp.org/view/1543/Simple-Acl-controlled-Application ),并经过“蛋糕烘焙”命令生成我 模型, 控制器和视图,一切都很好,但是当我访问 邮政添加视图(视图\帖子 \ add.php),我发现,而不是显示 用户名的输入文本,它显示一个所有用户名的选择。

这是Post的添加视图中显示select的行。

echo $this->Form->input('user_id'); 

PostsController

function add() { 
// Some other code 
    $users = $this->Post->User->find('list'); 
    $this->set(compact('users')); 
} 

虽然我知道如何只显示的用户名当前 登录的用户,我不知道如何控制内容 显示$ this-> Form-> input(),因为如果我使用不是 “Post”模型的一部分的变量,它会显示,但是作为输入的标签。

你有什么想法如何解决这个??

P.S.我一直试图找到食谱这一信息,但我一直没能找到具体到我的情况:(

+0

如果在你的控制器中有一个名为'user_id'的变量传递给你的视图,并且它是一个用户数组,cakephp会自动生成一个选择框。另外,不应该'user_id'是用户的id,而不是用户名? – 2011-05-11 20:59:01

+0

@ Corey-你是对的,有一个用户数组($ users),但是我害怕我没有很好地解释自己,我想知道的是,如果可以使用常量字符串来显示输入()?因为每次我尝试这样做时,字符串都会显示,但会作为标签显示 – eddy 2011-05-12 13:21:45

,试试这个:

echo $form->input('my label text',array('value'=>'the value string','type'=>'hidden')); 

这将使输入隐藏,并设置值。
或删除type=>hidden,这将有一个值,你还可以添加的东西像disabled和这样的在那里,或修改它创建div,使用div'=>array()并把你的div选项数组中......希望这有助于。

什么,我想帮你在这件事上。

首先是当你想要一个文本框,然后如果你想在作为输入的值添加一个字符串,你必须定义输入字段的类型。

echo $form->input('user_id', array('type'=>'text', 'label'=false)); 

我希望这会帮助你。