如何使用CakePHP 3在多模型窗体中设置默认字段?

时间:2016-06-29 07:07:31

标签: php forms model cakephp-3.0

我有一个表单,我发送两个模型,用于从两个不同的表中添加信息。

地方和活动。当Event在一个不在数据库中的地方时,我让用户将Place信息添加到其中。这适用于我的添加事件。

现在我想为事件编辑版本,但数据没有填充默认值。

我的表格如下:

<?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();
?>

在我的EventsController中,我有类似的东西:

    $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);

通常使用一个模型,字段的所有默认值都填充了数据库。

如何使用两个模型进行默认设置?

我想避免默认=&gt;每个字段的$ place-&gt; place_id选项。

谢谢

1 个答案:

答案 0 :(得分:1)

你的问题不清楚。为什么要在编辑表单中创建新实体? 为什么不在sql中设置默认值?

此外,您应该关联模型并使用关联。一个事件有一个地方。 place belongsTo事件请参阅本书以获取更多信息。