2

ユーザーが作成したテンプレート番号を選択したビューを作成しようとすると、次のページに移動して、そのテンプレート用に作成したフィールドが吐き出されます。SQL ステートメントで実行したいことを実行していますが、これらのcustomフィールドdefault_valuesを入力ボックスに出力するフォームを取得する方法がわかりません

請求書 テーブルにはid sender_id receiver_id template_id フィールドが含まれています テーブルには含まれていますid name default_value active template_id

invoices hambt fields
fields hambt invoices

結合テーブルは fields_invoices であり、含まれていますid invoice_id field_id entered value

請求書テーブルとフィールド テーブルから ID を取得して結合テーブルに保存する方法がわかりません

    public function create($id)
    {   
    $this->set('title_for_layout', 'Create Invoice');
    $this->set('stylesheet_used', 'homestyle');
    $this->set('image_used', 'eBOXLogoHome.png');   
    $this->layout='home_layout';

     if (!is_numeric($id)) throw new BadMethodCallException('I need an ID');
     $this->Invoice->id = $id;
     if (!$this->Invoice->exists()) throw new NotFoundException('Invalid ID');

    $this->set('invoice_id',$id);

    $names = $this->Invoice->find('list',array(
    'fields'=>array('template_id'),
    'conditions'=>array('id'=>$id)));

    $fields = $this->Field->find('list', array(
     'conditions'=>array(
     'template_id'=>$names)));

    $this->set('field',$fields);

    $this->set('name',$names);

    if(empty($this->data)){
        $this->data= $this->Field->read($fields);
    } 
    else{
        if(($this->Field->save($this->data)))
        {
            $this->Session->setFlash('The field has been updated');
            $this->redirect(array('controller'=>'invoices', 'action'=>'index'));

        }
        }
}

これがビューです

<?php echo $this->Form->create('fields_invoices'); ?>
    <?php foreach ($field as $fields): ?>
    <?php echo $this->Form->Input($fields); ?>
    <?php endforeach ;?>
    <?php echo $this->Form->End('Submit');?>

ビューを適切にコーディングして取得default_variablesし、fieldsテーブル内のを に出力する方法がわかりませんinput boxes。どんな助けでも大歓迎です

4

1 に答える 1

0

$fields 配列をデバッグしてもらえますか?

自動生成された入力フィールドで必要なものを指定できます...

例: $this->Form->input('field_name',array('label'=>'任意の名前','value'=>'value'));

于 2012-08-15T23:29:10.340 に答える