Zend_Form en Error messages

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Andreas Warnaar

Andreas Warnaar

18/11/2008 20:43:00
Quote Anchor link
Zend form bied diverse mogelijkheden om ingevoerd data te valideren. Alleen zijn er standaard error messages ingesteld.
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.
 
PHP hulp

PHP hulp

20/04/2024 08:18:04
 
Citroen Anoniem Graag

Citroen Anoniem Graag

18/11/2008 20:50:00
Quote Anchor link
21.3.3.1. Custom Error Messages

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
 
Andreas Warnaar

Andreas Warnaar

18/11/2008 21:10:00
Quote Anchor link
Zover ben ik ook gekomen. maar mijn kennis over van Zend is nog te minimaal om te begrijpen wat ik daar mee kan doen.

En hoe kun je verschillenden validators en en eigen messages definiëren ?
 
Thijs Damen

Thijs Damen

18/11/2008 21:43:00
Quote Anchor link
Hoe ik het doe:

zet een translate op.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
/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.
Gewijzigd op 01/01/1970 01:00:00 door Thijs Damen
 
Andreas Warnaar

Andreas Warnaar

18/11/2008 22:04:00
Quote Anchor link
THX...
Hier heb ik wat aan.

En idd.. je moet net de juiste zoektermen gebruiken met google... Ik ben blijven hangen op "validators zend form"
 
Thijs Damen

Thijs Damen

18/11/2008 22:14:00
Quote Anchor link
zoals ik al zij, lees die blog.

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 :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.