['details', 'required', 'when' => function ($model) {
return $model->name == 'name';
}],
{mails-name: ["Name cannot be blank."], mails-email: ["Email cannot be blank."]}. Поля details там нет, но оно подсвечивается.
echo (null == 'name') //falseecho ('' == 'name') //falseглавное что оно не равно "name".
!= у Вас наоборот
делает обязательным поле "details" только в том случае если атрибут "name" равен строке "name", вот именно. Получается если я к примеру оставляют поле name пустым то оно у меня false. Значит поле details должно быть пропущено как обязательное. Но увы, оно мне говорит что это поле должно быть заполнено.
{mails-email: ["Email cannot be blank."], mails-details: ["Details cannot be blank."]}{mails-name: ["Name cannot be blank."], mails-email: ["Email cannot be blank."]}
return ($model->name == 'name');return false;