#1199: AgaviValidator sets dependencies per argument base
-----------------------------------------+----------------------------------
Reporter: sven.kretschm...@… | Owner: dominik
Type: enhancement | Status: new
Priority: normal | Milestone: 1.0.3
Component: validation | Version: 1.0.1
Severity: normal | Keywords: validator dependency
Has_patch: 0 |
-----------------------------------------+----------------------------------
Comment(by sven.kretschm...@…):
Hi David,
here are the code samples. I posted both versions of the validation
configuration (one working without using a base and one using a base).
Affected files:
* SearchAction (search in normal mode, more simple in slot mode
* SearchInputView (display the input field and settings for the search)
* SearchSlotView (display only the input field in the marginal column)
* SearchSuccessView (display the search results)
* Search.xml (validation config)
SearchAction:
{{{
public function registerValidators()
{
$container_parameters = array(
'is_slot' =>
(bool)$this->getContainer()->getParameter('is_slot', false)
);
$this->getContainer()->getRequestData()->setParameter('__container',
$container_parameters);
}
}}}
Search.xml (current, working, without base)
{{{
<validator class="equals" required="false"
provides="container.is_no_slot">
<arguments>
<argument>__container[is_slot]</argument>
</arguments>
<errors>
<error>Invalid is_slot part given.</error>
</errors>
<ae:parameters>
<ae:parameter name="severity">silent</ae:parameter>
<ae:parameter name="value">false</ae:parameter>
</ae:parameters>
</validator>
<validator class="equals" required="false" provides="container.is_slot">
<arguments>
<argument>__container[is_slot]</argument>
</arguments>
<errors>
<error>Invalid is_slot part given.</error>
</errors>
<ae:parameters>
<ae:parameter name="severity">silent</ae:parameter>
<ae:parameter name="value">true</ae:parameter>
</ae:parameters>
</validator>
<validator class="number" name="invalid_limit" required="false"
depends="container.is_no_slot">
<arguments>
<argument>limit</argument>
</arguments>
<errors>
<error for="min">The limit must be a positive integer.</error>
<error for="type">The limit must be numeric.</error>
</errors>
<ae:parameters>
<ae:parameter name="min">1</ae:parameter>
<ae:parameter name="type">integer</ae:parameter>
</ae:parameters>
</validator>
}}}
Search.xml (enhanced, does not work)
{{{
<validator class="equals" required="false"
provides="container.is_no_slot">
<arguments base="__container">
<argument>is_slot</argument>
</arguments>
<errors>
<error>Invalid is_slot part given.</error>
</errors>
<ae:parameters>
<ae:parameter name="severity">silent</ae:parameter>
<ae:parameter name="value">false</ae:parameter>
</ae:parameters>
</validator>
<validator class="equals" required="false" provides="container.is_slot">
<arguments base="__container">
<argument>is_slot</argument>
</arguments>
<errors>
<error>Invalid is_slot part given.</error>
</errors>
<ae:parameters>
<ae:parameter name="severity">silent</ae:parameter>
<ae:parameter name="value">true</ae:parameter>
</ae:parameters>
</validator>
<validator class="number" name="invalid_limit" required="false"
depends="container.is_no_slot">
<arguments>
<argument>limit</argument>
</arguments>
<errors>
<error for="min">The limit must be a positive integer.</error>
<error for="type">The limit must be numeric.</error>
</errors>
<ae:parameters>
<ae:parameter name="min">1</ae:parameter>
<ae:parameter name="type">integer</ae:parameter>
</ae:parameters>
</validator>
}}}
--
Ticket URL: <http://trac.agavi.org/ticket/1199#comment:2>
Agavi <http://www.agavi.org/>
An MVC Framework for PHP5
_______________________________________________
Agavi Tickets Mailing List
[email protected]
http://lists.agavi.org/mailman/listinfo/tickets