FormHelper::input() 如果字段名具有“_id”后缀,则创建下拉菜单 select

FormHelper::input() creates a drop-down select if fielname has the "_id" suffix

我在 CakePHP 视图上有以下代码行:

<?php
echo $this->Form->input(
  'person_id',
  array(
    'label' => false,
    'div' => false,
    'class' => 'form-control search-person'
  )
);
?>

我想用这行代码创建一个文本输入,但是如果字段名称有后缀 _id,呈现的 HTML 从文本字段变为下拉列表 select。

如果我将前缀更改为其他任何内容,例如 person_iddabc_idd,它会呈现文本输入,但如果字段名称以 _id 后缀结尾,它会呈现一个下拉菜单 select,它不允许我写任何东西。

这是 CakePHP 的一些功能吗?我怎样才能避免这种行为并生成一个字段以 _id 后缀结尾的文本输入?

这是一个 CakePHP 功能:

This method will automatically inspect the model field it has been supplied in order to create an appropriate input for that field.

摘自 Cookbook 2.x: FormHelper: Creating form elements.

要获取文本输入,请将 'type' => 'text' 添加到选项数组:

<?php echo $this->Form->input('person_id', array(
    'type' => 'text',
    'label' => false, 
    'div' => false, 
    'class' => 'form-control search-person'
)); ?>