2015-04-07 6 views
0

предположим, у меня есть это:CakePHP 3, валидатор: домен перевода и заполнители

$validator->add('title', [ 
    'lengthBetween' => [ 
     'message' => 'Must be between %d and %d chars', 
     'rule'  => ['lengthBetween', 3, 100] 
    ] 
]) 

Я хочу знать:

  1. как указать перевод домена (с CakePHP 2.x, вы могли бы используйте свойство модели $validationDomain);
  2. как использовать заполнители для сообщений проверки (кажется, не работает ни с %s/%d, ни с {0}).

спасибо.

ответ

2

Заполнители были удалены в 3.x. Причина этого в том, что теперь легче переводить сообщения для проверки, поскольку они теперь живут в методе вместо свойства класса.

Таким образом, фактический способ сделать это:

$validator->add('title', [ 
    'lengthBetween' => [ 
     'message' => __('Must be between {0} and {1} chars', 3, 100), 
     'rule'  => ['lengthBetween', 3, 100] 
    ] 
]) 
+0

Спасибо @ хосе. Итак, для домена, могу ли я использовать '__d()'? –

+0

Да, вы можете использовать '__d ('validation', '...')' для использования домена подтверждения валидации –