// аргументы конструктора 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'],
];
}