- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 CRUD 应用程序中的 addAction 有问题。在 Controller 上,逻辑没有通过 $form->isValid() 验证,但表单没有显示任何错误消息。
我试过这个(谢谢山姆):
foreach($form->get('product')->getElements() as $el)
{
echo $el->getName()." = ".$el->getValue()." > ".$el->getMessages()." <br/>";
}
class ProductForm extends Form
{
public function init()
{
// we want to ignore the name passed
parent::__construct('product');
$this->setName('product');
$this->setAttribute('method', 'post');
$this->add(array(
'name' => 'product',
'type' => 'Administrador\Form\ProductFieldset',
'options' => array(
'use_as_base_fieldset' => true
),
));
$this->add(array(
'name' => 'submit',
'type' => 'Submit',
'attributes' => array(
'value' => 'Add',
'id' => 'submitbutton',
),
));
}
}
class ProductFieldset extends Fieldset implements ServiceLocatorAwareInterface
{
protected $serviceLocator;
function __construct($name = null)
{
parent::__construct('product_fieldset');
$this->setHydrator(new ArraySerializableHydrator());
$this->setObject(new Product());
}
public function init()
{
$this->add(array(
'name' => 'id',
'type' => 'Hidden',
));
$this->add(array(
'name' => 'name',
'type' => 'Text',
'options' => array(
'label' => 'Name',
),
));
$this->add(array(
'name' => 'price',
'type' => 'Text',
'options' => array(
'label' => 'Price',
),
));
$this->add(array(
'name' => 'brand',
'type' => 'BrandFieldset',
));
}
public function setServiceLocator(ServiceLocatorInterface $sl)
{
$this->serviceLocator = $sl;
}
public function getServiceLocator()
{
return $this->serviceLocator;
}
}
class BrandFieldset extends Fieldset
{
function __construct(BrandTable $brandTable)
{
parent::__construct('brand_fieldset');
//$this->setHydrator(new ClassMethodsHydrator(false))->setObject(new Brand());
$this->setHydrator(new ArraySerializableHydrator());
$this->setObject(new Brand());
$brandSelectOptionsArray = $brandTable->populateSelectBrand();
$this->add(array(
'name' => 'id',
'type' => 'Select',
'options' => array(
'label' => 'Brand',
'empty_option' => 'Please select a brand',
'value_options' => $brandSelectOptionsArray,
),
));
}
}
$formManager = $this->serviceLocator->get('FormElementManager');
$form = $formManager->get('Administrador\Form\ProductForm');
$brandFilter->add($factory->createInput(array(
'name' => 'id',
'required' => true,
'filters' => array(
array('name' => 'Int'),
),
)));
$inputFilter->add($brandFilter, 'brand');
class ProductController extends AbstractActionController
{
protected $productTable;
protected $brandTable;
public function indexAction()
{
return new ViewModel(array(
'products' => $this->getProductTable()->fetchAll(),
));
}
public function addAction()
{
$formManager = $this->serviceLocator->get('FormElementManager');
$form = $formManager->get('Administrador\Form\ProductForm');
$form->get('submit')->setValue('Add');
$request = $this->getRequest();
if ($request->isPost()) {
$product = new Product();
$product->brand = new Brand();
$form->setInputFilter($product->getInputFilter());
$form->setData($request->getPost());
if ($form->isValid()) {
$product->exchangeArray($form->getData());
$this->getProductTable()->saveProduct($product);
// Redirect to list of products
return $this->redirect()->toRoute('product');
}
}
return new ViewModel(array(
'form' => $form,
));
}
public function editAction()
{
$id = (int) $this->params()->fromRoute('id', 0);
if (!$id) {
return $this->redirect()->toRoute('product', array(
'action' => 'add'
));
}
// Get the Product with the specified id. An exception is thrown
// if it cannot be found, in which case go to the index page.
try {
$product = $this->getProductTable()->getProduct($id);
}
catch (\Exception $ex) {
return $this->redirect()->toRoute('product', array(
'action' => 'index'
));
}
$formManager = $this->serviceLocator->get('FormElementManager');
$form = $formManager->get('Administrador\Form\ProductForm');
$brand = $this->getBrandTable()->getBrand($product->brand);
$product->brand = $brand;
$form->bind($product);
$form->get('submit')->setAttribute('value', 'Edit');
$request = $this->getRequest();
if ($request->isPost()) {
$form->setInputFilter($product->getInputFilter());
$form->setData($request->getPost());
if ($form->isValid()) {
$this->getProductTable()->saveProduct($form->getData());
// Redirect to list of products
return $this->redirect()->toRoute('product');
}
}
return array(
'id' => $id,
'form' => $form,
);
}
public function deleteAction()
{
$id = (int) $this->params()->fromRoute('id', 0);
if (!$id) {
return $this->redirect()->toRoute('product');
}
$request = $this->getRequest();
if ($request->isPost()) {
$del = $request->getPost('del', 'No');
if ($del == 'Yes') {
$id = (int) $request->getPost('id');
$this->getProductTable()->deleteProduct($id);
}
// Redirect to list of products
return $this->redirect()->toRoute('product');
}
return array(
'id' => $id,
'product' => $this->getProductTable()->getProduct($id)
);
}
public function getProductTable()
{
if (!$this->productTable) {
$sm = $this->getServiceLocator();
$this->productTable = $sm->get('Administrador\Model\ProductTable');
}
return $this->productTable;
}
public function getBrandTable()
{
if (!$this->brandTable) {
$sm = $this->getServiceLocator();
$this->brandTable = $sm->get('Administrador\Model\BrandTable');
}
return $this->brandTable;
}
}
最佳答案
我的情况是我通过了错误的输入过滤器。 isValid
返回 false,但 $form->getMessages()
是空的。表格 OrderForm
有以下内容:
$form->setInputFilter(new \Application\Form\UserInputFilter($er));
UserInputFilter
至
OrderInputFilter
有用。
关于forms - $form->isValid 说它无效,但我的表单没有显示任何错误消息 - Zend Framework 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16867533/
这个问题是关于理解为什么一种技术比另一种更好。在 Angular 4/5 中,在模板中,您可以通过执行以下操作来实现相同的目的: 1) *ngIf-else 语法 content here
Page.IsValid 和 args.IsValid 是否相互依赖? 我的意思是,如果 args.IsValid="true",Page.IsValid 必须为“true”。 当然反过来说:如果 P
我正在编写一个 Controller 并为其进行单元测试,当时我遇到了两种方法(我认为同样有效)来做某事。我的所有模型都有一个 IsValid 属性,我可以检查该属性以询问模型是否有效。 在回发到 C
如我的问题所述。我真的不明白 date-fns 的 isValid 和 luxon 的 isValid 之间的区别。我有一个日期字符串变量和一个用 new Date() 调用日期字符串的变量。 我的日
这个问题已经有答案了: Getting AbstractMethodError while creating a connection to Oracle9 database with Tomcat
我正在使用自定义 register在 react-hook-form ,我无法获得 formState.isValid成为 true当我在输入中输入文本时(因此满足 required 条件)。 这是一
是否可以查看 knockout-validation plugin 中是否只有一个属性有效? 我在文档中看不到任何对它的引用,只能查看整个模型是否有效。 例如,我希望计算出的 observable 具
在Connection的方法中,我应该给它多少超时时间? :S 我不知道正常的超时是多少,应该花多长时间? :) 我不想要 isValid() 返回 false 如果它可以返回 true 如果它有更多
使用IsValid()验证电子邮件地址或URL格式是否可以防止XSS?指定其他格式时,它会否定XSS吗? 最佳答案 有效的URL仍可以包含攻击媒介: #isValid("url", "http://
我可以使用 isValid(0) 函数来检查连接是否仍然有效(alive)吗? 我遇到以下异常: com.mysql.jdbc.exceptions.jdbc4.CommunicationsExcep
我正在使用 ASP.NET-MVC Core 2.1,我的代码中有这个 ViewModel 类 public class HomeViewModel { public
我有一个非常简单的 MVC 2 表单。它有两个下拉菜单,用户和角色。无论我选择什么,员工下拉列表都会通过验证,而角色下拉列表不会通过验证。尽管我计划实现一个,但没有默认的“空”选项,这就是为什么我需要
我正在尝试在文件生成程序中为某些状态建模, 在一个点上 : 我想检查数据的当前状态 如果数据有效,我想继续 否则,我想通知用户无法继续的原因 伪代码将类似于: if(isValid()){ w
我正在尝试在 this video 的帮助下根据属性的可用性验证名为 Book 的模型。我正在尝试按照有关如何验证 Backbone.js 模型的说明进行操作,但是当我使用 .isValid() 方法
我有一个 javascript 类 c我正在尝试调用它的方法 isValid()关于onClick输入提交按钮的事件。我有c目前在我的提交按钮下方的一组脚本标签中。当我点击提交按钮时,我得到 Unca
我正在为 Com 执行一项小型任务。科学课,这是一门初级课,但我之前没有编码经验,所以我连基础知识都吃力。我会问很多问题,我很抱歉。我们被要求创建一个方法来遍历字符串的所有字符,看看它们是 A G C
我想从 html 页面上的 dropdownList 获取参数并将其发送到我的 Controller ,创建新的模型对象,并将其插入数据库。 这是我的 Controller (创建 My_Model
尝试创建一个简单的 Jmeter 5.0 测试以使用 JDBC 连接配置连接到数据库。无法连接到我的本地 mySql 数据库。 [jdbc:mysql://localhost:3306]。我可以使用
我几乎总是想在回发时检查 ModelSate.IsValid 是否被调用。而且必须在每次回发开始时进行检查违反了 DRY 原则,有没有办法让它自动检查? 例子: [HttpPost("Register
我的模型类如下: public class PostInputViewModel { [Required] [MinLength(1)] [Ma
我是一名优秀的程序员,十分优秀!