// аргументы конструктора MyController
$constructorArgs = [
'id',
Yii::$app,
];
// заменяемые методы и свойства MyController
$methods = [
// метод, который тестируем
// подойдет любой тип callable
'methodToTest' => function() {
$args = func_get_args();
... тестируем аргументы
},
];
$controllerMock = \Codeception\Util\Stub::construct(
'\namespace\controllers\MyController',
$constructorArgs,
$methods
);
$controllerMock->run('action', []); [
'ИмяКласса' => [
'id' => '2'
'type' => '2'
'date' => '12/01/2011'
]
]$data = [
'id' => '2'
'type' => '2'
'date' => '12/01/2011'
];
// второй параметр - пустая строка
$model->load($data, '');$data = [
'мой ключ' => [
'id' => '2'
'type' => '2'
'date' => '12/01/2011'
]
];
$model->load($data, 'мой ключ'); return [
'bootstrap' => [
'mySubdomainComponent'
],
'components' => [
'mySubdomainComponent' => '\namespace\of\mySubdomainComponent'
]
];
// обработка данных в компоненте, метод init
...
// в дальнейшем можно получить компонент
\Yii::$app->get('mySubdomainComponent')$app = \Yii::$app;
$app->on($app::EVENT_BEFORE_REQUEST, ['myListener', 'method']);
// в листенере делаем нужную обработку
... [
// имя класса без неймспейса
'ModelSearch' => [
...
]
]$this->load($params, '');Подскажите, пожалуйста, как отфильтровать значения в модели (перед выводом в GridView) по параметру type? Т.е. когда никакие фильтры ещё не передаются.
if (!$modelSearch->type) {
$modelSearch->type = 'булехум!';
} // первый
$model->validate()
// второй
$model->save()if ($model->validate() && $model->save(false))
...if ($model->load($request->post()) && $model->save()) {
// сохранили и что-то делаем
}// $model instanceof Subscription
$form->field($model, 'email')->textInput();[
'Subscription' => [
'email' => 'some@email'
]
]public function rules()
{
return [
['email', 'unique'],
];
}