0

複数の入力とドロップダウン選択のあるフォームがあります:

echo $this->Form->input("field",array(
  "name" => "data[Post][project_id]",
  "options" => $proTab,
  "empty" => "Sélectionnez un projet",
  "div" => "control-group",
  "label" => array(
    "class" => "control-label",
    "text" => "Projet : "
  ),
  "between" => "<div class='controls'>",
  "after" => "</div>"
));

ユーザーごとに異なるオプションがあります。

私はそれを次のように検証しようとしました:

"data[Post][project_id]" => array(
  array(
    "rule" => "notEmpty",
    "message" => "Veuillez choisir un projet",
    "allowEmpty" => false
  )
)

しかし、うまくいかないようです。どこが間違っていますか?

4

1 に答える 1

2

Postモデル自体から保存されると仮定すると、次のようにフォームを作成する必要があります。

echo $this->Form->input("project_id", array(
    "options" => $proTab,
    "empty" => "Sélectionnez un projet",
    "div" => "control-group",
    "label" => array(
        "class" => "control-label",
        "text" => "Projet : "
    ),
    "between" => "<div class='controls'>",
    "after" => "</div>"
));

属性nameは必要ありません。最初のパラメーターはフィールドの名前idの定義です。これを生成します:

<select name="data[Post][project_id]" id="PostProjectId">

Postモデルの検証:

public $validate = array(
    'project_id' => array(
        'notEmpty' => array(
            'rule' => array('notEmpty'),
            'message' => 'Veuillez choisir un projet',
            'allowEmpty' => false
        ),
    ),
);

お役に立てれば。

于 2012-09-21T16:42:51.823 に答える