【发布时间】:2019-03-28 03:17:48
【问题描述】:
我在不同的网站上有多个表单。它们都以相同的路线结束。 用户可以将某些类型的模型设置为 null。 并非每个表单都提交模型的所有字段。比如:
模型有这个字段:Name, Adress, Phone, Text
Form 1 提交Name, Adress, Phone
Form 2 提交Adress, Text
如果我提交表单 1,我的模型将如下所示:
$model->name = Name;
$model->adress = Adress;
$model->phone = Phone;
$model->text = null;
但我不想覆盖文本。我希望 Text 是提交之前的值。但是如果我提交表单 2,我想更改文本,甚至将其设置为 null。
但是,如何检查表单名称是否在提交的表单中(即使它实际上是null)?
目前,这是我的控制器中的更新例程:
...
$this->artSkill = ($request->artSkill) ? $request->artSkill : null;
$this->craftsmanSkill = ($request->craftsmanSkill) ? $request->craftsmanSkill : null;
$this->ownInitiativeSkill = ($request->ownInitiativeSkill) ? $request->ownInitiativeSkill : null;
...
【问题讨论】:
-
看来你需要利用 Laravel 的
request validation -
但是怎么做呢?我不能将输入字段视为必需的,因为如果表单不想更改字段,它实际上可以为空甚至未提交。我的愿望是从ajax调用路由只更新一个字段。
-
您可以添加一个隐藏的输入字段,显示此表单1或2是否已提交,然后您可以决定
-
@mooga 但这并不是真正的 OOP,我希望它可用于所有可能的用例。