小编jbl*_*lue的帖子

zend_form:我应该在布局中使用一个权限

我通常在一个动作中实例化我的表格,这是我在提交时处理它们的地方.然后我将它们传递给视图并像往常一样输出它们.

此表单(搜索框)不同,因为它不是单个页面的一部分.它必须随处可见.我已经把它作为模板的一部分layout.phtml并实例化并在那里访问它.

$search = new SearchForm(); 
echo $search;
Run Code Online (Sandbox Code Playgroud)

表格打印得很好但现在的问题是我在哪里处理这个表格.我通常在动作中有这样的处理代码.

    if ($this->_request->isPost()) {
        //and form is valid
        //process the data            
    }
Run Code Online (Sandbox Code Playgroud)

但由于这种形式是普遍的,因此没有任何行动.我该怎么处理?

我是不是该:

  • 为它创建一个虚拟动作(这没有意义,因为表格无处不在)
  • 或者我应该将处理代码直接放入layout.phtml(我认为这是不好的MVC实践,因为我现在混合处理表单与视图).

我该怎么办?有什么建议吗?

php zend-framework zend-form

2
推荐指数
1
解决办法
445
查看次数

多个控制器呢?

我是新来的,所以我不确定什么是组织我正在尝试做的最好的方法.我指导用户进行一系列测验.mysite.com/quiz1 mysite.com/quiz2 mysite.com/quiz3 mysite.com/quiz4

当用户回答第一个测验时,他被转发到一个页面,告诉他他的答案是否正确,并且在同一页面上他可以选择回答另一个测验.如果他回答,他将再次被带到一个页面,在那里他被告知他的答案是否正确并提交第三个测验.

从架构方面来看,这些quiz1,quiz2等各个页面都被认为是自己的控制器吗?他们的路径说他们可能是,但如果是的话对我没有意义.有没有办法让它们在相同的路径上,但将它们捆绑在同一个控制器中.正如我所说,我是Zend的新手,所以我希望得到一些关于正确方法的反馈意见.

php zend-framework

1
推荐指数
1
解决办法
86
查看次数

Zend更改验证错误行为:将元素包装在另一个标记中

我为电子邮件设置了验证器,因此它不能为空.

这是zend_form生成的常用形式的标记:

<dt id="email-label"><label class="required" for="email">Email</label></dt>
<dd id="email-element">
   <input type="text" value="" id="email" name="email">
</dd>
Run Code Online (Sandbox Code Playgroud)

验证失败时,zend_form ul class="errors"在dd中添加一个新内容

<dt id="email-label"><label class="required" for="email">Email</label></dt>
<dd id="email-element">
   <input type="text" value="" id="email" name="email">
   <ul class="errors">
      <li>Value is required and can't be empty</li>
   </ul>
</dd>
Run Code Online (Sandbox Code Playgroud)

如何稍微更改此默认行为,以便整个dt dd包装在单个psomething我可以添加错误类?我的猜测是我需要指定zend_form在元素出错时如何表现.

php zend-framework zend-form zend-validate

1
推荐指数
1
解决办法
1402
查看次数

Drupal中的SQL注入

这都是为了阻止Drupal中的SQL注入吗?

db_query('INSERT INTO {tablename} (field1, field2) VALUES ("%s", "%s")', $field1, $field2);
Run Code Online (Sandbox Code Playgroud)

drupal drupal-6

0
推荐指数
1
解决办法
3438
查看次数

Zend_form:添加的"enctype"是什么?

Zend为所有表单添加了一个enctype.这有什么用?我该如何删除它?

<form action="" 
      method="post" 
      enctype="application/x-www-form-urlencoded" 
      id="myform">

</form>
Run Code Online (Sandbox Code Playgroud)

php zend-framework zend-form

0
推荐指数
1
解决办法
1416
查看次数

在插件中调用动作助手

在我的控制器/动作中,我可以调用动作助手

$this->_helper->getHelper('layout')->disableLayout();
Run Code Online (Sandbox Code Playgroud)

我想在插件中做同样的事情,所以我尝试了这个,但它不起作用.插件如何访问动作助手?

$controller = $this->getRequest()->getControllerName();
$controller->getHelper('layout')->disableLayout();
Run Code Online (Sandbox Code Playgroud)

php zend-framework

0
推荐指数
1
解决办法
1216
查看次数