2011-07-08 9 views
0

私はアップロードと呼ばれるテーブルを持っています。私は、テーブルのアップロードでユーチューブのビデオリンクや画像のための「タイプ」 すなわちテーブルのエントリの命名規則を2回追加する方法は?

で二回、このテーブルにエントリを作成しましたので、私はこの

//のためのようなコードを書いた

ビデオリンク echo $ form-> input( 'Project.Upload.Name'、array( 'type' => 'file'、 'label' => false));

と //画像 ためには、ます$ form->入力( 'Project.Upload.Name'、配列( 'タイプ' => 'ファイル'、 'ラベルを' => false)を)エコー;

どのようにこれらの2つのフィールドを区別できますか? リンクや画像のフィールドを分けるために、命名規則の方法がありますか。

+0

なぜ2つの別々のフィールドがありますか?それはあなたの問題を解決するだろう...いいえ? – YonoRan

答えて

2

次の2つのアップロード・フィールドが必要な場合は、このようにそれらに名前を付ける必要があります:

echo $form->input('Project.Upload.0.Name', array('type'=>'file','label' => false)); 
echo $form->input('Project.Upload.1.Name', array('type'=>'file','label' => false)); 

これは、使用する準備ができ$this->dataで配列を作成します。詳しくは、how to save related model dataをCookbookでご覧ください。

編集

あなたがアップロードを入力し何を追跡する必要がある場合は、このようにそれを追加する必要がされています。あなたはここで行う

echo $form->input('Project.Upload.0.Name', array('type'=>'file','label' => false)); 
echo $form->input('Project.Upload.0.Type', array('type'=>'hidden','value' => 'image')); 
echo $form->input('Project.Upload.1.Name', array('type'=>'file','label' => false)); 
echo $form->input('Project.Upload.1.Type', array('type'=>'hidden','label' => 'video')); 

何があなたとあなたの最初のアップロードを関連付けることです隠し値 'image'を持つ最初の型フィールド。したがって、最初のエントリはデータベース(Cake-Array)に保存されます:

画像とビデオの処理は、データベースに保存する前に行う必要があります。

array(
    [Upload] => array(
     [0] => array(
      [id] => 1, 
      [name] => 'test.jpg', 
      [type] => 'image' 
     ), 
     [1] => array(
      [id] => 1, 
      [name] => 'test.avi', 
      [type] => 'video' 
     ) 
    ) 
) 
+0

はい私はアップロードフィールドを別にしたいが、ビデオ用と画像用の2つのものについては、どのような問題があるのですか?タイプを指定してアップロードテーブルに挿入すると、どの配列がビデオで、どの配列が画像であるのかわかりません[プロジェクト] =>配列([アップロード] =>配列 ( [name ] => '' )) – vibha

+0

私の編集を見てください – Tim

+0

ありがとうございます。それは働いた... – vibha