public function rules () {
return [
['field1', 'customValidate'],
];
}
public function customValidate ($attribute, $params) {
if (some_expression) {
$this->addError('field1', 'Error description');
$this->addError('field2', '');
$this->addError('field3', '');
}
}
public function rules () {
return [
[
'field1',
function($attribute, $params){
if (some_expression) {
$this->addError('field1', 'Error1 description');
$this->addError('field2', '');
$this->addError('field3', '');
}
}
],
];
}
/**
* @param array $array
* @param array $keyPath
* @param $value
*
* @return array
* @throws InvalidArgumentException
*/
function addValueToArrayByKeyPath ($array, $keyPath, $value) {
if (!is_array($array)) throw new \InvalidArgumentException;
$level =& $array;
foreach ($keyPath as $key) {
if (!array_key_exists($key, $level) or !is_array($level[$key])) {
$level[$key] = [];
}
$level =& $level[$key];
}
$level = $value;
return $array;
}
$array = [
1 => [
2 => [],
9 => [],
]
];
$keyPath = [1, 2 ,3];
$array = addValueToArrayByKeyPath($array, $keyPath, 42);
var_dump($array);
/* output:
array (size=1)
1 =>
array (size=2)
2 =>
array (size=1)
3 => int 42
9 =>
array (size=0)
empty
*/
var_dump
абсолютно всех параметров, которые передаются в sendmail ($this->_recipients
и т.д.) и попробуйте запустить из php, затем из консоли mail()
точно с такими же параметрами. Если снова словите ошибку, поиграетесь с параметрами и найдёте проблемный. Если отправится, то проверьте от какого пользователя запускается php (var_dump(exec('whoami')))
, затем попробуйте отправить именно от него (su username
).