Zend framework2 zf2表单中文本元素的默认值
如何为ZF2表单中的文本元素设置默认值 我尝试了以下方法:Zend framework2 zf2表单中文本元素的默认值,zend-framework2,zend-form,Zend Framework2,Zend Form,如何为ZF2表单中的文本元素设置默认值 我尝试了以下方法: 在视图文件中。这不会获取数据,也不会保存: if($form->get('agencyName')->getValue() === '') $form->get('agencyName')->setValue('Virtual Field Practicum'); 这既不影响视图,也不影响数据库: $this->add(array( 'name' => 'agencyNam
if($form->get('agencyName')->getValue() === '')
$form->get('agencyName')->setValue('Virtual Field Practicum');
$this->add(array(
'name' => 'agencyName',
'options' => array(
'label' => 'Agency Name',
),
'attributes' => array(
'disabled' => 'disabled',
'value' => 'Virtual Field Practicum',
)
));
public function __construct()
{
//set default agency name
$this->agencyName = 'Virtual Field Practicum';
}
public function editTabAction()
{
$buildName = $this->params()->fromRoute('buildName', 'unknown');
if ($buildName == 'unknown') {
$buildName = $this->params()->fromPost('buildName', 'unknown');
if ($buildName == 'unknown') {
trigger_error('Could not retrieve build name for ' . $buildName . ' entity for this form!');
}
}
//extract parameter from dispatch command
$studEvalId = (int)$this->params()->fromRoute('studEvalId', 0);
if ($studEvalId == 0) {
//extract parameter from the form submission
$studEvalId = (int)$this->params()->fromPost('studEvalId', 0);
if ($studEvalId == 0) {
return $this->notFoundAction();
}
}
$data = $this->getEntity($buildName, $studEvalId);
// Get your ObjectManager from the ServiceManager
$objectManager = $this->getEntityManager();
// get from from FormElementManager plugin
//forms are defined in Module.php
$formName = $buildName . "Form";
$sl = $this->getServiceLocator();
$form = $sl->get('FormElementManager')->get($formName);
$form->setHydrator(new DoctrineHydrator($objectManager ));
$form->setObject($this->getEntityInstanceFromBuildName($buildName));
$form->bind($data);
//set class and Id for buttons like SaveChanges to reference it
$form->setAttribute('class', "studentFormsClass_$studEvalId");
$form->setAttribute('id', "studentFormsId_$studEvalId" . "_$buildName");
//set buildName to the form
$form->get('buildName')->setAttribute('value', $buildName);
$request = $this->getRequest();
if ($request->isPost()) {
$formValidatorName = "OnlineFieldEvaluation\Form\\" . $buildName . "FormValidator";
$formValidator = new $formValidatorName();
$form->setInputFilter($formValidator->getInputFilter());
$form->setData($request->getPost());
if ($form->isValid()) {
$this->savetodb($form->getData(), $buildName);
// Redirect to list of forms
return false;
} else {
foreach ($form->getMessages() as $messageId => $message) {
echo '<pre>';
echo "Validation failure '$messageId':";
print_r($message);
echo '</pre>';
}
}
}
$view = new ViewModel(array(
'studEvalId' => $studEvalId,
'buildName' => $buildName,
'form' => $form,
));
$view->setTemplate('online-field-evaluation/tabs/edit' . $buildName . '.phtml');
return $view;
}
public function addAction()
{
$form = new YourAgencyForm();
$form->get('agencyName')->setValue('Virtual Field Practicum');
....
公共函数editTabAction()
{
$buildName=$this->params()->fromRoute('buildName','unknown');
如果($buildName==“未知”){
$buildName=$this->params()->fromPost('buildName','unknown');
如果($buildName==“未知”){
触发器_错误('无法检索此表单的“$buildName.”实体的生成名!');
}
}
//从调度命令中提取参数
$studEvalId=(int)$this->params()->fromRoute('studEvalId',0);
如果($studEvalId==0){
//从表单提交中提取参数
$studEvalId=(int)$this->params()->fromPost('studEvalId',0);
如果($studEvalId==0){
返回$this->notFoundAction();
}
}
$data=$this->getEntity($buildName,$studEvalId);
//从ServiceManager获取您的ObjectManager
$objectManager=$this->getEntityManager();
//从FormElementManager插件获取
//表单在Module.php中定义
$formName=$buildName.“Form”;
$sl=$this->getServiceLocator();
$form=$sl->get('FormElementManager')->get($formName);
$form->setHydrator(新的DoctrineHydrator($objectManager));
$form->setObject($this->getEntityInstanceFromBuildName($buildName));
$form->bind($data);
//为SaveChanges之类的按钮设置类和Id以引用它
$form->setAttribute('class','studentFormsClass_u$studEvalId');
$form->setAttribute('id',“studentFormsId_$studEvalId”。“$buildName”);
//将buildName设置为表单
$form->get('buildName')->setAttribute('value',$buildName);
$request=$this->getRequest();
如果($request->isPost()){
$formValidatorName=“OnlineFieldEvaluation\Form\\”$buildName。“FormValidator”;
$formValidator=新的$formValidatorName();
$form->setInputFilter($formValidator->getInputFilter());
$form->setData($request->getPost());
如果($form->isValid()){
$this->savetodb($form->getData(),$buildName);
//重定向到表单列表
返回false;
}否则{
foreach($form->getMessages()作为$messageId=>$message){
回声';
public function validatepostajaxAction()
{
$request = $this->getRequest();
$response = $this->getResponse();
$buildName = $this->params()->fromRoute('buildName', 'unknown');
if ($buildName == 'unknown') {
$buildName = $this->params()->fromPost('buildName', 'unknown');
if ($buildName == 'unknown') {
trigger_error('Could not retrieve build name for ' . $buildName . ' entity for this form!');
}
}
//extract parameter from dispatch command
$studEvalId = (int)$this->params()->fromRoute('studEvalId', 0);
if ($studEvalId == 0) {
//extract parameter from the form submission
$studEvalId = (int)$this->params()->fromPost('studEvalId', 0);
if ($studEvalId == 0) {
return $this->notFoundAction();
}
}
$data = $this->getEntity($buildName, $studEvalId);
$objectManager = $this->getEntityManager();
$formName = $buildName . "Form";
$sl = $this->getServiceLocator();
$form = $sl->get('FormElementManager')->get($formName);
$form->setHydrator(new DoctrineHydrator($objectManager ));
$entityName = 'OnlineFieldEvaluation\Entity\\' . $buildName;
$form->setObject(new $entityName());
$form->bind($data);
//set class and Id for buttons like SaveChanges to reference it
$form->setAttribute('class', "studentFormsClass_$studEvalId");
$form->setAttribute('id', "studentFormsId_$studEvalId" . "_$buildName");
//set buildName to the form
$form->get('buildName')->setAttribute('value', $buildName);
$messages = array();
if ($request->isPost()) {
$formValidatorName = "OnlineFieldEvaluation\Form\\" . $buildName . "FormValidator";
$formValidator = new $formValidatorName();
$form->setInputFilter($formValidator->getInputFilter());
$form->setData($request->getPost());
if (!$form->isValid()) {
$errors = $form->getMessages();
foreach ($errors as $key => $row) {
if (!empty($row) && $key != 'submit') {
foreach ($row as $keyer => $rower) {
//save error(s) per-element that
//needed by Javascript
$messages[$key][] = $rower;
}
}
}
}
if (!empty($messages)) {
$response->setContent(
\Zend\Json\Json::encode(
array('status' => 'error',
'messages' => (array) $messages,
'buildName' => $buildName,
'studEvalId' => $studEvalId
)));
} else {
//save to db <span class="wp-smiley wp-emoji wp-emoji-wink" title=";)">;)</span>
$this->savetodb($form->getData(), $buildName);
$response->setContent(
\Zend\Json\Json::encode(
array(
'status' => 'success',
'messages' => 'Successfuly saved.',
'buildName' => $buildName,
'studEvalId' => $studEvalId
)
));
}
}
return $response;
}
echo“验证失败'$messageId':”;
打印($message);
回声';
public function validatepostajaxAction()
{
$request = $this->getRequest();
$response = $this->getResponse();
$buildName = $this->params()->fromRoute('buildName', 'unknown');
if ($buildName == 'unknown') {
$buildName = $this->params()->fromPost('buildName', 'unknown');
if ($buildName == 'unknown') {
trigger_error('Could not retrieve build name for ' . $buildName . ' entity for this form!');
}
}
//extract parameter from dispatch command
$studEvalId = (int)$this->params()->fromRoute('studEvalId', 0);
if ($studEvalId == 0) {
//extract parameter from the form submission
$studEvalId = (int)$this->params()->fromPost('studEvalId', 0);
if ($studEvalId == 0) {
return $this->notFoundAction();
}
}
$data = $this->getEntity($buildName, $studEvalId);
$objectManager = $this->getEntityManager();
$formName = $buildName . "Form";
$sl = $this->getServiceLocator();
$form = $sl->get('FormElementManager')->get($formName);
$form->setHydrator(new DoctrineHydrator($objectManager ));
$entityName = 'OnlineFieldEvaluation\Entity\\' . $buildName;
$form->setObject(new $entityName());
$form->bind($data);
//set class and Id for buttons like SaveChanges to reference it
$form->setAttribute('class', "studentFormsClass_$studEvalId");
$form->setAttribute('id', "studentFormsId_$studEvalId" . "_$buildName");
//set buildName to the form
$form->get('buildName')->setAttribute('value', $buildName);
$messages = array();
if ($request->isPost()) {
$formValidatorName = "OnlineFieldEvaluation\Form\\" . $buildName . "FormValidator";
$formValidator = new $formValidatorName();
$form->setInputFilter($formValidator->getInputFilter());
$form->setData($request->getPost());
if (!$form->isValid()) {
$errors = $form->getMessages();
foreach ($errors as $key => $row) {
if (!empty($row) && $key != 'submit') {
foreach ($row as $keyer => $rower) {
//save error(s) per-element that
//needed by Javascript
$messages[$key][] = $rower;
}
}
}
}
if (!empty($messages)) {
$response->setContent(
\Zend\Json\Json::encode(
array('status' => 'error',
'messages' => (array) $messages,
'buildName' => $buildName,
'studEvalId' => $studEvalId
)));
} else {
//save to db <span class="wp-smiley wp-emoji wp-emoji-wink" title=";)">;)</span>
$this->savetodb($form->getData(), $buildName);
$response->setContent(
\Zend\Json\Json::encode(
array(
'status' => 'success',
'messages' => 'Successfuly saved.',
'buildName' => $buildName,
'studEvalId' => $studEvalId
)
));
}
}
return $response;
}
}
}
}
$view=新的视图模型(阵列)(
“studEvalId”=>$studEvalId,
“buildName”=>$buildName,
'form'=>$form,
));
$view->setTemplate('online-field-evaluation/tabs/edit'.$buildName.'.phtml');
返回$view;
}
2) 这一个负责ajax调用:
public function editTabAction()
{
$buildName = $this->params()->fromRoute('buildName', 'unknown');
if ($buildName == 'unknown') {
$buildName = $this->params()->fromPost('buildName', 'unknown');
if ($buildName == 'unknown') {
trigger_error('Could not retrieve build name for ' . $buildName . ' entity for this form!');
}
}
//extract parameter from dispatch command
$studEvalId = (int)$this->params()->fromRoute('studEvalId', 0);
if ($studEvalId == 0) {
//extract parameter from the form submission
$studEvalId = (int)$this->params()->fromPost('studEvalId', 0);
if ($studEvalId == 0) {
return $this->notFoundAction();
}
}
$data = $this->getEntity($buildName, $studEvalId);
// Get your ObjectManager from the ServiceManager
$objectManager = $this->getEntityManager();
// get from from FormElementManager plugin
//forms are defined in Module.php
$formName = $buildName . "Form";
$sl = $this->getServiceLocator();
$form = $sl->get('FormElementManager')->get($formName);
$form->setHydrator(new DoctrineHydrator($objectManager ));
$form->setObject($this->getEntityInstanceFromBuildName($buildName));
$form->bind($data);
//set class and Id for buttons like SaveChanges to reference it
$form->setAttribute('class', "studentFormsClass_$studEvalId");
$form->setAttribute('id', "studentFormsId_$studEvalId" . "_$buildName");
//set buildName to the form
$form->get('buildName')->setAttribute('value', $buildName);
$request = $this->getRequest();
if ($request->isPost()) {
$formValidatorName = "OnlineFieldEvaluation\Form\\" . $buildName . "FormValidator";
$formValidator = new $formValidatorName();
$form->setInputFilter($formValidator->getInputFilter());
$form->setData($request->getPost());
if ($form->isValid()) {
$this->savetodb($form->getData(), $buildName);
// Redirect to list of forms
return false;
} else {
foreach ($form->getMessages() as $messageId => $message) {
echo '<pre>';
echo "Validation failure '$messageId':";
print_r($message);
echo '</pre>';
}
}
}
$view = new ViewModel(array(
'studEvalId' => $studEvalId,
'buildName' => $buildName,
'form' => $form,
));
$view->setTemplate('online-field-evaluation/tabs/edit' . $buildName . '.phtml');
return $view;
}
public function addAction()
{
$form = new YourAgencyForm();
$form->get('agencyName')->setValue('Virtual Field Practicum');
....
公共函数validatepostajaxAction()
{
$request=$this->getRequest();
$response=$this->getResponse();
$buildName=$this->params()->fromRoute('buildName','unknown');
如果($buildName==“未知”){
$buildName=$this->params()->fromPost('buildName','unknown');
如果($buildName==“未知”){
触发器_错误('无法检索此表单的“$buildName.”实体的生成名!');
}
}
//从调度命令中提取参数
$studEvalId=(int)$this->params()->fromRoute('studEvalId',0);
如果($studEvalId==0){
//从表单提交中提取参数
$studEvalId=(int)$this->params()->fromPost('studEvalId',0);
如果($studEvalId==0){
返回$this->notFoundAction();
}
}
$data=$this->getEntity($buildName,$studEvalId);
$objectManager=$this->getEntityManager();
$formName=$buildName.“Form”;
$sl=$this->getServiceLocator();
$form=$sl->get('FormElementManager')->get($formName);
$form->setHydrator(新的DoctrineHydrator($objectManager));
$entityName='OnlineFieldEvaluation\Entity\\'。$buildName;
$form->setObject(新的$entityName());
$form->bind($data);
//为SaveChanges之类的按钮设置类和Id以引用它
$form->setAttribute('class','studentFormsClass_u$studEvalId');
$form->setAttribute('id',“studentFormsId_$studEvalId”。“$buildName”);
//将buildName设置为表单
$form->get('buildName')->setAttribute('value',$buildName);
$messages=array();
如果($request->isPost()){
$formValidatorName=“OnlineFieldEvaluation\Form\\”$buildName。“FormValidator”;
$formValidator=新的$formValidatorName();
$form->setInputFilter($formValidator->getInputFilter());
$form->setData($request->getPost());
如果(!$form->isValid()){
$errors=$form->getMessages();
foreach($key=>$row的错误){
如果(!empty($row)&&$key!='submit'){
foreach($keyer=>$rower的行){
//保存每个元素的错误
//Javascript所需要的
$messages[$key][]=$rower;
}
}
}
}
如果(!空($messages)){
$response->setContent(
\Zend\Json\Json::encode(
数组('状态'=>'错误',
'messages'=>(数组)$messages,
“buildName”=>$buildName,
“studEvalId”=>$st