カスタムフォーム入力を生成するヘルパーがあります。
ヘルパー(簡略化されたコード)
public function customInput($field, array $options = array()) {
$defaultOptions = array(
'class' => 'custom-input',
'label' => false
);
$options = array_merge($defaultOptions, $options);
return $this->Form->input($field, $options);
}
別の「モデル」を前に付けて、入力の名前属性を変更するにはどうすればよいですか。たとえば、入力にはデフォルトで次の name 属性があります。
<input type="text" name="data[MyModel][field]" />
しかし、私はそれが欲しい:
<input type="text" name="data[_custom][MyModel][field]" />
主に難しいと思われるのは、デフォルトで使用されるモデル名を取得する方法がわからないことです。また、次のように、デフォルトのモデル階層がより複雑な場合に機能するものが必要です。
<input type="text" name="data[MyModel][AssociatedModel][field]" />
次のように変更する必要があります。
<input type="text" name="data[_custom][MyModel][AssociatedModel][field]" />