Php 表单中的字段的行为类似于“必需”,尽管它们不是必需的
我正在尝试为我的应用程序中的实体位置设置编辑表单。为此,我在控制器中编写了表单PlaceForm、字段集PlaceFieldset、.phtml页面和函数。因为我是zf2的新手,所以我将注意力集中在他们主页上的tutorlias上。我已经看到,框架提供了验证,但在我的例子中,它不是必需的。字段集中添加的字段都没有required属性,但是当我在所有空字段下提交表单时,我得到的消息值是必需的,不能为空,尽管它实际上不是必需的。我不想在这个问题中创建代码墙,所以我将从控制器的函数开始。如果有人想帮助我解决这个问题,请告诉我,我会提前更新代码表单、字段集等的任何其他部分Php 表单中的字段的行为类似于“必需”,尽管它们不是必需的,php,validation,zend-framework2,Php,Validation,Zend Framework2,我正在尝试为我的应用程序中的实体位置设置编辑表单。为此,我在控制器中编写了表单PlaceForm、字段集PlaceFieldset、.phtml页面和函数。因为我是zf2的新手,所以我将注意力集中在他们主页上的tutorlias上。我已经看到,框架提供了验证,但在我的例子中,它不是必需的。字段集中添加的字段都没有required属性,但是当我在所有空字段下提交表单时,我得到的消息值是必需的,不能为空,尽管它实际上不是必需的。我不想在这个问题中创建代码墙,所以我将从控制器的函数开始。如果有人想帮助
...
public function editPlaceAction() {
$id = $this->params()->fromRoute('id');
$uiServiceProvider = $this->getServiceLocator()->get('FamilyTree\Service\UiServiceProvider');
$placeArray = $uiServiceProvider->fetchSinglePlaceById($id);
$place = new Places($placeArray);
$form = new PlaceForm();
$form->bind($place);
$request = $this->getRequest();
if ($request->isPost()) {
$form->setData($request->getPost());
if ($form->isValid()) {
var_dump($place);
}
}
$view = new ViewModel(array(
'form' => $form,
'title'=>"Edit place"
));
$view->setTemplate("family-tree/family-tree-maintenance/editPlace");
return $view;
}
...
在这里你可以看到我的字段集是什么样子
<?php
namespace Places\Form;
use Zend\Form\Fieldset;
class PlaceFieldset extends Fieldset {
public function __construct() {
parent::__construct('place');
$this->add(array(
'name' => 'id',
'type' => 'Hidden',
));
$this->add(array(
'name' => 'name',
'type' => 'Text',
'options' => array(
'label' => 'Name',
),
));
$this->add(array(
'name' => 'admUnit1',
'type' => 'Text',
'options' => array(
'label' => 'AdmUnit1',
),
));
}
}
不要使用“$form->isValid”。我认为这将自动验证字段。您还没有InputFilter。首先感谢您的回答。我删除了$form->isValid,这是真的,这些字段不再是必需的,但现在还有其他问题。“我的位置”对象不会使用表单中的新值更新。我认为,它是由框架本身在后台执行的。提交后如何从表单中提取新值?谢谢!您可以直接从请求对象获取新值。看见