2016-11-07 104 views

回答

1

中有没有尔康特权,只有它的数据库字段将有强制性的,如果他们定义为Not NULL

但是,如果你想显示*或者astric标记,那么你只需要添加CSS或简单地将*添加到标签字段。

但是你可以从表单控制器分配一个参数为'isRequired',然后检查伏特文件中的if元素是否有这个值为true然后显示*标记否则不显示。

如下:

{{ element.getAttribute('isRequired') ? '<span class="required"></span>' : '' }} 

并在CSS文件中定义如下一个类里面:

.required { 
    content: "*"; 
    color: #FF0000; 
} 

希望你会得到答案。它为我工作。

+0

是的你是对的,但我正在寻找一种解决方案,我们只能在控制器中完成。 –

+0

我不这么认为,有任何领域或pericy param是否有这样做,你必须使用HTML或CSS只。 – Garry

+0

谢谢@加里,这对我有用。感谢您的回答。 –

4

您可以添加CSS类:

label.required::after { 
    content: "*"; 
    color: #FF0000; 
} 
+0

你说得对,但我正在寻找phalcon的解决方案。 –

+0

您可以为表单元素创建[自定义渲染布局](https://docs.phalconphp.com/en/3.0.1/reference/forms.html#rendering-forms)。但无论哪种方式,使用上述CSS方法是最有效的。 – Timothy

+0

@AmanGarg标记答案。 –

1

您可以通过向表单元素添加自定义属性并在查看中检查其值来完成此操作。在这个例子中吼叫我在每一个应该被要求

 $name = new Text('name',['placeholder' => 'Your Name', 'isRequired' => true]); 
     $name->setFilters(['striptags', 'trim']); 
     $name->setLabel("Name"); 
     $this->add($name); 

比我检查,如果它的值是真的,所以我可以设置字符*视图元素一套名为“isRequired”的属性为true。 下面的示例使用动态表单呈现,但如果静态写下所有表单元素,则它的作用相同。

{%for element in form.getElements()%} 
     <div class="col-md-4"> 
     <div class="form-group form-md-line-input"> 
      {{form.render(element.GetName())}} 
      <label for="{{element.GetName()}}"> 
      {{element.GetLabel()}} 
      {{ element.getAttribute('isRequired') ? '<span class="required">*</span>' : '' }} 
      </label> 
     </div> 
    </div> 
    {%endfor%} 
+0

欣赏你的答案,但它不符合我的要求,实际上'isRequired'用于表单提交后会出现的验证,但我希望根据需要使用estrick(*)标记或其他内容显示文本字段提交表格以便用户能够理解哪些字段是强制性的,哪些不是 –