【问题标题】:How to set default fields in multi-model form with CakePHP 3?如何使用 CakePHP 3 以多模型形式设置默认字段?
【发布时间】:2016-10-31 18:01:02
【问题描述】:

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

地点和事件。当事件在一个不在数据库中的地方时,我让用户放置要添加的地方信息。这适用于我的添加事件。

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

我的表格是这样的:

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

通常只有一个模型,字段都默认填充数据库。

如何为两个模型设置默认值?

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

谢谢

【问题讨论】:

    标签: php forms model cakephp-3.0


    【解决方案1】:

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

    此外,您应该关联模型并使用关联。一个事件有一个地方。 place belongsTo 事件参见本书了解更多信息。

    【讨论】:

    • 我的客户想创建一个新的地方,如果一个事件以相同的形式改变他们的位置,我建议用两种形式,但他坚持使用一种。表有它们的关联。使用'default' => $event->place_id,我得到了我需要的东西,但我认为不是为所有字段设置所有默认值。我接受想法。将来可能还需要以一种形式添加类别
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 2014-06-20
    • 2019-06-01
    • 1970-01-01
    相关资源
    最近更新 更多