Zend_Form en Error messages
BV; bij een verplichtveld geeft het de melding "Value is empty, but a non-empty value is required".
Hoe kun je deze aanpassen in de controller. dus dat je deze toevoegd nadat je het element al hebt toegevoegd in je Form object.
At times, you may want to specify one or more specific error messages to use instead of the error messages generated by the validators attached to your element. Additionally, at times you may want to mark the element invalid yourself. As of 1.6.0, this functionality is possible via the following methods.
http://framework.zend.com/manual/en/zend.form.elements.html#zend.form.elements.validators.errors
En hoe kun je verschillenden validators en en eigen messages definiëren ?
zet een translate op.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/library/ZFBlog/Form/Decorator/LabelError.php:
<?php
class ZFBlog_Form_Decorator_LabelError extends Zend_Form_Decorator_Label
{
public function getLabel()
{
$element = $this->getElement();
$errors = $element->getMessages();
if (empty($errors)) {
return parent::getLabel();
}
$label = trim($element->getLabel());
$label .= ' <strong>'
. implode('</strong><br /><strong>', $errors)
. '</strong>';
$element->setLabel($label);
return parent::getLabel();
}
}
[/code]
ZFBlog/Form.php (extends Zend_Form)
[code]
public function __construct() {
$this->addElementPrefixPath('ZFBlog_Form_Decorator', 'ZFBlog/Form/Decorator/', 'decorator')
$this->_setupTranslation()
[/code]
translate/forms.php (translate staat in je root. dus niet in public, library of wat dan ook. maar een eigen map)
[code]
[code]<?php
return array(
Zend_Validate_NotEmpty::IS_EMPTY => 'Required',
Zend_Validate_StringLength::TOO_SHORT => 'Minimum Length of %min%',
Zend_Validate_StringLength::TOO_LONG => 'Maximum Length of %max%'
);
[/code]
Zend_Validate_NotEmpty::IS_EMPTY kun je opzoeken in je librayr (Zend/Validate/) daar wonrden CONSTr defineerd. die neem je over in je zend_translate.
ps. dit is overgenomen van de volgende tutorial:
http://blog.astrumfutura.com/archives/360-Example-Zend-Framework-Blog-Application-Tutorial-Part-6-Introduction-to-Zend_Form-and-Authentication-with-Zend_Auth.html
Mijn eigen versie is aangepast maar ik denk dat je hiermee verder kan komen
mijn tip is om die tutorial van begin tot eind goed te lezen want hij is zo ongelooflijk informatief.
succes ermee.
en @Citroen: De Zend.com documentatie is afschuwelijk, het is vies. onduidelijk, geen goeie voorbeelden. je hebt er echt helemaal niks aan (behalve de quickstart). Je kan er eens een keertje iets opzoeken, maar persoonlijk vind ik het echt ongelooflijk bagger.
@andreas nogmaals
Als je voor Zend gaat googlen. zoek dan op een manier als:
Zend_Validate custom errors. 9 van de 10 keer krijg je goeie hits.
<?php
class ZFBlog_Form_Decorator_LabelError extends Zend_Form_Decorator_Label
{
public function getLabel()
{
$element = $this->getElement();
$errors = $element->getMessages();
if (empty($errors)) {
return parent::getLabel();
}
$label = trim($element->getLabel());
$label .= ' <strong>'
. implode('</strong><br /><strong>', $errors)
. '</strong>';
$element->setLabel($label);
return parent::getLabel();
}
}
[/code]
ZFBlog/Form.php (extends Zend_Form)
[code]
public function __construct() {
$this->addElementPrefixPath('ZFBlog_Form_Decorator', 'ZFBlog/Form/Decorator/', 'decorator')
$this->_setupTranslation()
[/code]
translate/forms.php (translate staat in je root. dus niet in public, library of wat dan ook. maar een eigen map)
[code]
[code]<?php
return array(
Zend_Validate_NotEmpty::IS_EMPTY => 'Required',
Zend_Validate_StringLength::TOO_SHORT => 'Minimum Length of %min%',
Zend_Validate_StringLength::TOO_LONG => 'Maximum Length of %max%'
);
[/code]
Zend_Validate_NotEmpty::IS_EMPTY kun je opzoeken in je librayr (Zend/Validate/) daar wonrden CONSTr defineerd. die neem je over in je zend_translate.
ps. dit is overgenomen van de volgende tutorial:
http://blog.astrumfutura.com/archives/360-Example-Zend-Framework-Blog-Application-Tutorial-Part-6-Introduction-to-Zend_Form-and-Authentication-with-Zend_Auth.html
Mijn eigen versie is aangepast maar ik denk dat je hiermee verder kan komen
mijn tip is om die tutorial van begin tot eind goed te lezen want hij is zo ongelooflijk informatief.
succes ermee.
en @Citroen: De Zend.com documentatie is afschuwelijk, het is vies. onduidelijk, geen goeie voorbeelden. je hebt er echt helemaal niks aan (behalve de quickstart). Je kan er eens een keertje iets opzoeken, maar persoonlijk vind ik het echt ongelooflijk bagger.
@andreas nogmaals
Als je voor Zend gaat googlen. zoek dan op een manier als:
Zend_Validate custom errors. 9 van de 10 keer krijg je goeie hits.
Gewijzigd op 01/01/1970 01:00:00 door Thijs Damen
Hier heb ik wat aan.
En idd.. je moet net de juiste zoektermen gebruiken met google... Ik ben blijven hangen op "validators zend form"
dan maak je kennis met:
Zend_Controller
Zend_Form
Zend_Auth
Zend_Acl
Zend_Validate
Zend_Action
Zend_View
Zend_Layout
Zend_Db
Zend_Config
en praktisch al hun functies. Dat is dus bijna alles wat je nodig heb voor een volledige website. Mocht je dan nog kleine dingetjes willen zoeken google ervoor.
(bijvoorbeeld Zend_Acl word maar heel erg kort en klein uitgelegd, maar na het volgen van de tutorial ken je de 'Zend' manier en weet je het zelf ook wel aan te passen)
Succes met Zend :)