2016-06-29 7 views
1

2つの異なるテーブルから情報を追加するための2つのモデルを送信するフォームがあります。CakePHP 3を使用してマルチモデルフォームのデフォルトフィールドを設定する方法は?

プレイスとイベント。イベントがデータベースにない1つの場所にある場合は、追加する場所情報をユーザーに割り当てます。これは私のイベントの追加にはうまくいきます。

イベントの編集版を作成したいが、データがデフォルトで埋められていない。私はこのようなものを持っている私のEventsControllerで

<?php 
echo $this->Form->create($event); 
echo $this->Form->input('Place.address'); 
echo $this->Form->input('Place.lat'); 
echo $this->Form->input('Place.lon'); 
echo $this->Form->input('Event.place_id'); 
echo $this->Form->button(__('Validar')); 
echo $this->Form->end(); 
?> 

$place = $this->Places->newEntity(); 
    $event = $this->Events->newEntity(); 

    if ($this->request->is('post')) { 
     $place = $this->Places->patchEntity($place, $this->request->data['Place']); 
     $event = $this->Events->patchEntity($event, $this->request->data['Event']); 

    $this->set('place', $place); 
    $this->set('event', $event); 

通常は一つのモデルで、フィールドはデータベースで満たされ、すべてのデフォルトを持っているよう

私のフォームがあります。

2つのモデルでデフォルトを作成するにはどうすればよいですか?

フィールドごとにデフォルト=> $ place-> place_idオプションを避けたいと思います。

ありがとうございました

答えて

1

ご質問が不明です。編集フォームで新しいエンティティを作成するのはなぜですか? SQLでデフォルトを設定しないのはなぜですか?

さらに、モデルを関連付けて関連付けを行う必要があります。 1つのイベントhasOneの場所。 belongsToイベントを配置すると、詳細については本を参照してください。

+0

私のクライアントは、あるイベントが同じフォームで場所を変更した場合、新しい場所を作成したいと考えています。私は2つの形式にすることを提案しますが、使用することを主張します。テーブルには関連があります。 'default' => $ event-> place_idを使うと、私は必要なものを手に入れることができますが、すべてのフィールドのすべてのデフォルトをきれいにすることはできません。私はアイデアを受け入れる。将来的には、カテゴリを1つの形式でも追加する必要があるでしょう –

関連する問題