2012-02-25 11 views
0

私はこのモデルhttp://pastebin.com/tSaTvLxWを持っていて、これは私のコントローラhttp://pastebin.com/iWeyvF71です。これは関連するビューadd.ctp http://pastebin.com/YWqwMtqxですが、新しい情報レコードを追加すると、Education、Experienceが空の場合でも常にレコードはそれぞれのテーブルに作成され、その行動を引き起こす原因を知っている、これを見つけるのを助けることができますか?なぜこれらのフィールドが空であってもデータを保存するのはなぜですか?

+0

ブラウザ自動補完?詳細が必要です。 – MichaelH

+0

いいえ、オートコンプリートはオフで、これらのフィールドのデータも空になります。詳細は必要ですか? – ReynierPM

答えて

0

私はこれを実行すると、私はます$ this->要求 - >データで以下を参照してください。

Array 
(
    [Information] => Array 
     (
      [name] => Test 
      [lastname] => Name 
      [email] => [email protected] 
      [mobile_phone] => 1561561566 
      [home_phone] => 1521521522 
      [address] => 123 Any Street 
      [other_information] => Other information 
      [picture] => Array 
       (
        [name] => avatar.png 
        [type] => image/png 
        [tmp_name] => /tmp/php2Jvveh 
        [error] => 0 
        [size] => 89486 
       ) 

     ) 

    [Education] => Array 
     (
      [0] => Array 
       (
        [education_content] => 
       ) 

     ) 

    [Experience] => Array 
     (
      [0] => Array 
       (
        [experience_content] => 
       ) 
     ) 
) 

あなたは教育の配列と経験配列は、空ながら、まだ中に存在していることがわかります$this->request->data$this->Information->saveAll($this->request->data)を使用しているため、空のデータセットがテーブルに保存されます。空のデータを保存しない場合は、アレイが空であるかどうかを確認してください。そうであれば、保存する前に設定を解除してください。フォームの設定方法は次のようになります。

if (empty($this->request->data['Experience'][0]['experience_content'])) { 
    unset($this->request->data['Experience']); 
} 
if (empty($this->request->data['Education'][0]['education_content'])) { 
    unset($this->request->data['Education']); 
} 
$this->Information->create(); 
    if ($this->Information->saveAll($this->request->data)) { 
    ...snip... 
関連する問題