mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-16 06:17:56 +08:00
Merge pull request #8482 from vyachin/fix-guide-ru-2
Fix guide ru 2 [skip ci]
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
Построитель запросов
|
Построитель запросов
|
||||||
====================
|
====================
|
||||||
|
|
||||||
Построеный поверх [DAO](db-dao.md), построитель запросов позволяет конструировать SQL выражения в программируемом и
|
Построенный поверх [DAO](db-dao.md), построитель запросов позволяет конструировать SQL выражения в программируемом и
|
||||||
независимом от СУБД виде. В сравнении с написанием чистого SQL, использование построителя помогает вам писать
|
независимом от СУБД виде. В сравнении с написанием чистого SQL, использование построителя помогает вам писать
|
||||||
более читаемый связанный с SQL код и генерировать более безопасные SQL выражения.
|
более читаемый связанный с SQL код и генерировать более безопасные SQL выражения.
|
||||||
|
|
||||||
@@ -86,7 +86,7 @@ $query->select(['user_id' => 'user.id', 'email']);
|
|||||||
$query->select(["CONCAT(first_name, ' ', last_name) AS full_name", 'email']);
|
$query->select(["CONCAT(first_name, ' ', last_name) AS full_name", 'email']);
|
||||||
```
|
```
|
||||||
|
|
||||||
Начиная с версии 2.0.1, вы также можете использовать подзапросы. Вы должны указывть каждый подзапрос в выражении как
|
Начиная с версии 2.0.1, вы также можете использовать подзапросы. Вы должны указывать каждый подзапрос в выражении как
|
||||||
объект [[yii\db\Query]]. Например:
|
объект [[yii\db\Query]]. Например:
|
||||||
|
|
||||||
```php
|
```php
|
||||||
@@ -169,7 +169,7 @@ $query->where('status=:status', [':status' => $status]);
|
|||||||
```
|
```
|
||||||
|
|
||||||
Не встраивайте переменные непосредственно в условие, особенно если значение переменной получено от пользователя,
|
Не встраивайте переменные непосредственно в условие, особенно если значение переменной получено от пользователя,
|
||||||
потому что это делает ваше приложение подверженым атакам через SQL инъекции.
|
потому что это делает ваше приложение подверженным атакам через SQL инъекции.
|
||||||
|
|
||||||
```php
|
```php
|
||||||
// Опасность! Не делайте так если вы не уверены, что $status это действительно число.
|
// Опасность! Не делайте так если вы не уверены, что $status это действительно число.
|
||||||
@@ -200,7 +200,7 @@ $query->where([
|
|||||||
]);
|
]);
|
||||||
```
|
```
|
||||||
|
|
||||||
Как вы можете видеть, построитель запросов достаточно умён, чтобы правильно обрабатывать значения NULL или массивов.
|
Как вы можете видеть, построитель запросов достаточно умен, чтобы правильно обрабатывать значения NULL или массивов.
|
||||||
|
|
||||||
Вы также можете использовать подзапросы:
|
Вы также можете использовать подзапросы:
|
||||||
|
|
||||||
@@ -303,9 +303,9 @@ if (!empty($search)) {
|
|||||||
|
|
||||||
#### Условия для фильтров <span id="filter-conditions"></span>
|
#### Условия для фильтров <span id="filter-conditions"></span>
|
||||||
|
|
||||||
Когда условие `WHERE` формируется на основе пользовательского ввода, обычно хочется проигнорироват незаданные значения.
|
Когда условие `WHERE` формируется на основе пользовательского ввода, обычно хочется проигнорировать не заданные значения.
|
||||||
Например, в форме поиска, которая позволяет осуществлять поиск по имени пользователя или email, вы хотели бы игнорировать
|
Например, в форме поиска, которая позволяет осуществлять поиск по имени пользователя или email, вы хотели бы игнорировать
|
||||||
username/email условие, если пользователь ничего не ввёл в поле ввода. Вы можете достич этого используя метод
|
username/email условие, если пользователь ничего не ввёл в поле ввода. Вы можете достичь этого используя метод
|
||||||
[[yii\db\Query::filterWhere()|filterWhere()]].
|
[[yii\db\Query::filterWhere()|filterWhere()]].
|
||||||
|
|
||||||
```php
|
```php
|
||||||
@@ -316,13 +316,13 @@ $query->filterWhere([
|
|||||||
]);
|
]);
|
||||||
```
|
```
|
||||||
|
|
||||||
Единственное отличие межде [[yii\db\Query::filterWhere()|filterWhere()]] и [[yii\db\Query::where()|where()]]
|
Единственное отличие между [[yii\db\Query::filterWhere()|filterWhere()]] и [[yii\db\Query::where()|where()]]
|
||||||
заключается в игнорировании пустых значений переданных в условие в [форме массива](#hash-format). Таким образом
|
заключается в игнорировании пустых значений переданных в условие в [форме массива](#hash-format). Таким образом
|
||||||
если `$email` будет пустым, а `$username` нет, то приведённый выше код сформирует `...WHERE username=:username`.
|
если `$email` будет пустым, а `$username` нет, то приведённый выше код сформирует `...WHERE username=:username`.
|
||||||
|
|
||||||
> Информация: значение признаётся пустым, если это null, пустой массив, пустая строка или строка состоящая из одних пробельных символов.
|
> Информация: значение признаётся пустым, если это null, пустой массив, пустая строка или строка состоящая из одних пробельных символов.
|
||||||
|
|
||||||
Таже вместо [[yii\db\Query::andWhere()|andWhere()]] и [[yii\db\Query::orWhere()|orWhere()]], вы можете использовать
|
Также вместо [[yii\db\Query::andWhere()|andWhere()]] и [[yii\db\Query::orWhere()|orWhere()]], вы можете использовать
|
||||||
[[yii\db\Query::andFilterWhere()|andFilterWhere()]] и [[yii\db\Query::orFilterWhere()|orFilterWhere()]]
|
[[yii\db\Query::andFilterWhere()|andFilterWhere()]] и [[yii\db\Query::orFilterWhere()|orFilterWhere()]]
|
||||||
для добавления дополнительных условий фильтрации.
|
для добавления дополнительных условий фильтрации.
|
||||||
|
|
||||||
@@ -421,7 +421,7 @@ $query->limit(10)->offset(20);
|
|||||||
Если вы определяете неправильный limit или offset (например отрицательное значение), они будут проигнорированы.
|
Если вы определяете неправильный limit или offset (например отрицательное значение), они будут проигнорированы.
|
||||||
|
|
||||||
> Информация: Для СУБД, которые не поддерживают `LIMIT` и `OFFSET` (такие как MSSQL), построитель запросов будет
|
> Информация: Для СУБД, которые не поддерживают `LIMIT` и `OFFSET` (такие как MSSQL), построитель запросов будет
|
||||||
генерировать SQL выражения, которые эмулируют поведение `LIMIT`/`OFFSET`.
|
генерировать SQL выражения, которые эмулирует поведение `LIMIT`/`OFFSET`.
|
||||||
|
|
||||||
|
|
||||||
### [[yii\db\Query::join()|join()]] <span id="join"></span>
|
### [[yii\db\Query::join()|join()]] <span id="join"></span>
|
||||||
@@ -491,7 +491,7 @@ $query1->union($query2);
|
|||||||
|
|
||||||
[[yii\db\Query]] предоставляет целый набор методов для разных вариантов выборки:
|
[[yii\db\Query]] предоставляет целый набор методов для разных вариантов выборки:
|
||||||
|
|
||||||
- [[yii\db\Query::all()|all()]]: возвращает массив строк, какждая из которых это ассоциативный массив пар ключ-значение.
|
- [[yii\db\Query::all()|all()]]: возвращает массив строк, каждая из которых это ассоциативный массив пар ключ-значение.
|
||||||
- [[yii\db\Query::one()|one()]]: возвращает первую строку запроса.
|
- [[yii\db\Query::one()|one()]]: возвращает первую строку запроса.
|
||||||
- [[yii\db\Query::column()|column()]]: возвращает первый столбец результата.
|
- [[yii\db\Query::column()|column()]]: возвращает первый столбец результата.
|
||||||
- [[yii\db\Query::scalar()|scalar()]]: возвращает скалярное значение первого столбца первой строки результата.
|
- [[yii\db\Query::scalar()|scalar()]]: возвращает скалярное значение первого столбца первой строки результата.
|
||||||
@@ -518,7 +518,7 @@ $row = (new \yii\db\Query())
|
|||||||
```
|
```
|
||||||
|
|
||||||
> Примечание: метод [[yii\db\Query::one()|one()]] вернёт только первую строку результата запроса. Он НЕ добавляет
|
> Примечание: метод [[yii\db\Query::one()|one()]] вернёт только первую строку результата запроса. Он НЕ добавляет
|
||||||
`LIMIT 1` в генерируемый SQL. Это хорошо и предпочтительно если вы знаете, что запрос вернёт только одны или несколько
|
`LIMIT 1` в генерируемый SQL. Это хорошо и предпочтительно если вы знаете, что запрос вернёт только одну или несколько
|
||||||
строк данных (например, при запросе по первичному ключу). Однако, если запрос потенциально может вернут много
|
строк данных (например, при запросе по первичному ключу). Однако, если запрос потенциально может вернут много
|
||||||
строк данных, вы должны вызвать `limit(1)` для повышения производительности, Например:
|
строк данных, вы должны вызвать `limit(1)` для повышения производительности, Например:
|
||||||
`(new \yii\db\Query())->from('user')->limit(1)->one()`.
|
`(new \yii\db\Query())->from('user')->limit(1)->one()`.
|
||||||
@@ -542,7 +542,7 @@ $count = (new \yii\db\Query())
|
|||||||
* Создаёт объект [[yii\db\Command]] с сгенерированным SQL запросом;
|
* Создаёт объект [[yii\db\Command]] с сгенерированным SQL запросом;
|
||||||
* Вызывается выбирающий метод (например `queryAll()`) из [[yii\db\Command]] для выполнения SQL запроса и извлечения данных.
|
* Вызывается выбирающий метод (например `queryAll()`) из [[yii\db\Command]] для выполнения SQL запроса и извлечения данных.
|
||||||
|
|
||||||
Иногда вы можете захотеть увидеть или испрользовать SQL запрос построенный из объекта [[yii\db\Query]]. Этой цели можно
|
Иногда вы можете захотеть увидеть или использовать SQL запрос построенный из объекта [[yii\db\Query]]. Этой цели можно
|
||||||
добиться с помощью следующего кода:
|
добиться с помощью следующего кода:
|
||||||
|
|
||||||
```php
|
```php
|
||||||
|
|||||||
@@ -315,7 +315,7 @@ class MyBootstrapClass implements BootstrapInterface
|
|||||||
отображает содержимое конечному пользователю, вы должны попробовать
|
отображает содержимое конечному пользователю, вы должны попробовать
|
||||||
[интернационализовать и локализовать](tutorial-i18n.md) его. В частности,
|
[интернационализовать и локализовать](tutorial-i18n.md) его. В частности,
|
||||||
|
|
||||||
- Если расширение отображает сообщения, предназначенные для конечных пользователей, сообщения должны быть обёрнуты в
|
- Если расширение отображает сообщения, предназначенные для конечных пользователей, сообщения должны быть обернуты в
|
||||||
метод `Yii::t()` так, чтобы они могли быть переведены. Сообщения, предназначенные для разработчиков (например,
|
метод `Yii::t()` так, чтобы они могли быть переведены. Сообщения, предназначенные для разработчиков (например,
|
||||||
внутренние сообщения исключений), не нужно переводить.
|
внутренние сообщения исключений), не нужно переводить.
|
||||||
- Если расширение отображает числа, даты и т.п., они должны быть отформатированы, используя [[yii\base\Formatter]] с
|
- Если расширение отображает числа, даты и т.п., они должны быть отформатированы, используя [[yii\base\Formatter]] с
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public function behaviors()
|
|||||||
|
|
||||||
При создании нового фильтра действия, необходимо наследоваться от [[yii\base\ActionFilter]] и переопределить методы
|
При создании нового фильтра действия, необходимо наследоваться от [[yii\base\ActionFilter]] и переопределить методы
|
||||||
[[yii\base\ActionFilter::beforeAction()|beforeAction()]] и/или [[yii\base\ActionFilter::afterAction()|afterAction()]].
|
[[yii\base\ActionFilter::beforeAction()|beforeAction()]] и/или [[yii\base\ActionFilter::afterAction()|afterAction()]].
|
||||||
Первый из них будет вызыван перед выполнением действия, а второй после. Возвращаемое
|
Первый из них будет вызван перед выполнением действия, а второй после. Возвращаемое
|
||||||
[[yii\base\ActionFilter::beforeAction()|beforeAction()]] значение определяет, будет ли действие выполняться или нет.
|
[[yii\base\ActionFilter::beforeAction()|beforeAction()]] значение определяет, будет ли действие выполняться или нет.
|
||||||
Если вернётся `false`, то оставшиеся фильтры не будут применены и действие выполнено не будет.
|
Если вернётся `false`, то оставшиеся фильтры не будут применены и действие выполнено не будет.
|
||||||
|
|
||||||
@@ -286,7 +286,7 @@ public function behaviors()
|
|||||||
|
|
||||||
Ограничитель количества запросов в единицу времени *(RateLimiter)* реализует алгоритм ограничения запросов, основанный на
|
Ограничитель количества запросов в единицу времени *(RateLimiter)* реализует алгоритм ограничения запросов, основанный на
|
||||||
[алгоритме leaky bucket](http://en.wikipedia.org/wiki/Leaky_bucket). В основном, он используется при создании RESTful API.
|
[алгоритме leaky bucket](http://en.wikipedia.org/wiki/Leaky_bucket). В основном, он используется при создании RESTful API.
|
||||||
Подробнее об использовании данного фильтра пожно прочитать в разделе [Ограничение запросов](rest-rate-limiting.md).
|
Подробнее об использовании данного фильтра можно прочитать в разделе [Ограничение запросов](rest-rate-limiting.md).
|
||||||
|
|
||||||
|
|
||||||
### [[yii\filters\VerbFilter|VerbFilter]] <span id="verb-filter"></span>
|
### [[yii\filters\VerbFilter|VerbFilter]] <span id="verb-filter"></span>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
Вы можете создавать классы моделей путём расширения класса [[yii\base\Model]] или его дочерних классов. Базовый класс [[yii\base\Model]] поддерживает много полезных функций:
|
Вы можете создавать классы моделей путём расширения класса [[yii\base\Model]] или его дочерних классов. Базовый класс [[yii\base\Model]] поддерживает много полезных функций:
|
||||||
|
|
||||||
* [Атрибуты](#attributes): представляют собой рабочие данные и могут быть доступны как обычные свойства объекта или элементы массыва;
|
* [Атрибуты](#attributes): представляют собой рабочие данные и могут быть доступны как обычные свойства объекта или элементы массива;
|
||||||
* [Метки атрибутов](#attribute-labels): задают отображение атрибута;
|
* [Метки атрибутов](#attribute-labels): задают отображение атрибута;
|
||||||
* [Массовое присвоение](#massive-assignment): поддержка заполнения нескольких атрибутов в один шаг;
|
* [Массовое присвоение](#massive-assignment): поддержка заполнения нескольких атрибутов в один шаг;
|
||||||
* [Правила проверки](#validation-rules): обеспечивают ввод данных на основе заявленных правил проверки;
|
* [Правила проверки](#validation-rules): обеспечивают ввод данных на основе заявленных правил проверки;
|
||||||
@@ -128,7 +128,7 @@ public function attributeLabels()
|
|||||||
|
|
||||||
## Сценарии <span id="scenarios"></span>
|
## Сценарии <span id="scenarios"></span>
|
||||||
|
|
||||||
Модель может быть использованна в различных *сценариях*. Например, модель `User` может быть использованна для коллекции входных логинов пользователей, а также может быть использованна для цели регистрации пользователей.
|
Модель может быть использована в различных *сценариях*. Например, модель `User` может быть использована для коллекции входных логинов пользователей, а также может быть использована для цели регистрации пользователей.
|
||||||
В различных сценариях, модель может использовать различные бизнес-правила и логику. Например, атрибут `email` может потребоваться во время регистрации пользователя, но не во время входа пользователя в систему.
|
В различных сценариях, модель может использовать различные бизнес-правила и логику. Например, атрибут `email` может потребоваться во время регистрации пользователя, но не во время входа пользователя в систему.
|
||||||
|
|
||||||
Модель использует свойство [[yii\base\Model::scenario]], чтобы отслеживать сценарий, в котором она используется. По умолчанию, модель поддерживает только один сценарий с именем `default`. В следующем коде показано два способа установки сценария модели:
|
Модель использует свойство [[yii\base\Model::scenario]], чтобы отслеживать сценарий, в котором она используется. По умолчанию, модель поддерживает только один сценарий с именем `default`. В следующем коде показано два способа установки сценария модели:
|
||||||
@@ -267,7 +267,7 @@ $model->body = isset($data['body']) ? $data['body'] : null;
|
|||||||
|
|
||||||
### Безопасные Атрибуты <span id="safe-attributes"></span>
|
### Безопасные Атрибуты <span id="safe-attributes"></span>
|
||||||
|
|
||||||
Массовое присвоение применяется только к так называемым *безопасным атрибутам*, которые являются атрибутами, перечисленными в [[yii\base\Model::scenarios()]] в текущем сценарии [[yii\base\Model::scenario|scenario]] модели. Например, если модель `User` имеет следующий заданный сценарий, в данном случае это сценарий `login`, то только `username` и `password` могут быть массово присвоены. Любые другие атрибуты остануться нетронутыми.
|
Массовое присвоение применяется только к так называемым *безопасным атрибутам*, которые являются атрибутами, перечисленными в [[yii\base\Model::scenarios()]] в текущем сценарии [[yii\base\Model::scenario|scenario]] модели. Например, если модель `User` имеет следующий заданный сценарий, в данном случае это сценарий `login`, то только `username` и `password` могут быть массово присвоены. Любые другие атрибуты останутся нетронутыми.
|
||||||
|
|
||||||
```php
|
```php
|
||||||
public function scenarios()
|
public function scenarios()
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ use yii\helpers\HtmlPurifier;
|
|||||||
</div>
|
</div>
|
||||||
```
|
```
|
||||||
|
|
||||||
> Совет: Несмотря на то, что HTMLPurifier отлично справляется с тем, чтобы сделать вывод безопасным, работает он довольно медленно. Если от приложения требуется высокая производительность, рассмотрите возможность [кэширования](caching-overview.md) отфитрованного результата
|
> Совет: Несмотря на то, что HTMLPurifier отлично справляется с тем, чтобы сделать вывод безопасным, работает он довольно медленно. Если от приложения требуется высокая производительность, рассмотрите возможность [кэширования](caching-overview.md) отфильтрованного результата
|
||||||
|
|
||||||
|
|
||||||
### Организация видов <span id="organizing-views"></span>
|
### Организация видов <span id="organizing-views"></span>
|
||||||
|
|||||||
@@ -86,7 +86,7 @@
|
|||||||
- `@backend` - директория веб-приложения backend.
|
- `@backend` - директория веб-приложения backend.
|
||||||
- `@console` - директория console.
|
- `@console` - директория console.
|
||||||
- `@runtime` - директория runtime исполняемого приложения.
|
- `@runtime` - директория runtime исполняемого приложения.
|
||||||
- `@vendor` - директория vendor, содержащая пакеты загруженые Composer'ом.
|
- `@vendor` - директория vendor, содержащая пакеты загруженные Composer'ом.
|
||||||
- `@bower` - директория vendor, содержащая [пакеты bower](http://bower.io/).
|
- `@bower` - директория vendor, содержащая [пакеты bower](http://bower.io/).
|
||||||
- `@npm` - директория vendor, содержащая [пакеты npm](https://www.npmjs.org/).
|
- `@npm` - директория vendor, содержащая [пакеты npm](https://www.npmjs.org/).
|
||||||
- `@web` - базовый URL исполняемого веб-приложения.
|
- `@web` - базовый URL исполняемого веб-приложения.
|
||||||
@@ -98,7 +98,7 @@
|
|||||||
Приложения
|
Приложения
|
||||||
----------
|
----------
|
||||||
|
|
||||||
В шаблоне advanced три приложения: frontend, backend и console. Frontend это та часть приложения, которае обеспечивает
|
В шаблоне advanced три приложения: frontend, backend и console. Frontend это та часть приложения, которая обеспечивает
|
||||||
взаимодействие системы с конечным пользователем проекта. Backend это административная панель, аналитика и прочая подобная
|
взаимодействие системы с конечным пользователем проекта. Backend это административная панель, аналитика и прочая подобная
|
||||||
функциональность. Console обычно используется для выполнения заданий по расписанию через cron, низкоуровневого
|
функциональность. Console обычно используется для выполнения заданий по расписанию через cron, низкоуровневого
|
||||||
управления сервером, при развёртывании приложения, работы с миграциями и ресурсами.
|
управления сервером, при развёртывании приложения, работы с миграциями и ресурсами.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
Консольное приложение
|
Консольное приложение
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
Кроме богатых возможностей для построеня веб приложений, Yii также имеет полноценную поддержку консольных приложений,
|
Кроме богатых возможностей для построения веб приложений, Yii также имеет полноценную поддержку консольных приложений,
|
||||||
которые обычно используются для создания фоновых и служебных задач, поддерживающих сайт.
|
которые обычно используются для создания фоновых и служебных задач, поддерживающих сайт.
|
||||||
|
|
||||||
Структура консольных приложений очень похожа на структуру веб приложения. Она состоит из одного и более классов
|
Структура консольных приложений очень похожа на структуру веб приложения. Она состоит из одного и более классов
|
||||||
@@ -49,7 +49,7 @@ yii <route> [--option1=value1 --option2=value2 ... argument1 argument2 ...]
|
|||||||
yii migrate/up 5 --migrationTable=migrations
|
yii migrate/up 5 --migrationTable=migrations
|
||||||
```
|
```
|
||||||
|
|
||||||
> **Примечание**: При использовании в консоли `*`, не забудте поместить её в кавычки `"*"` чтобы избежать её интерпретации
|
> **Примечание**: При использовании в консоли `*`, не забудьте поместить её в кавычки `"*"` чтобы избежать её интерпретации
|
||||||
> и замены на все имена файлов в данной директории.
|
> и замены на все имена файлов в данной директории.
|
||||||
|
|
||||||
|
|
||||||
@@ -110,10 +110,10 @@ exit($exitCode);
|
|||||||
> ```
|
> ```
|
||||||
|
|
||||||
|
|
||||||
Создание ваших собственных комманд <span id="create-command"></span>
|
Создание ваших собственных команд <span id="create-command"></span>
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
### Консолный контроллер и действие
|
### Консольный контроллер и действие
|
||||||
|
|
||||||
Консольная команда определяется как класс контроллера расширяющий [[yii\console\Controller]]. В классе контроллера,
|
Консольная команда определяется как класс контроллера расширяющий [[yii\console\Controller]]. В классе контроллера,
|
||||||
вы определяете одно или несколько действий, которые соответствуют суб-командам контроллера. В каждом действии
|
вы определяете одно или несколько действий, которые соответствуют суб-командам контроллера. В каждом действии
|
||||||
@@ -128,18 +128,18 @@ exit($exitCode);
|
|||||||
|
|
||||||
Для переопределения [[yii\console\Controller::options()]] метода, вы можете указать опции, которые доступны в консольной
|
Для переопределения [[yii\console\Controller::options()]] метода, вы можете указать опции, которые доступны в консольной
|
||||||
команде (controller/actionID). Метод должен возвращать список публичных атрибутов класса. При запуске команды вы
|
команде (controller/actionID). Метод должен возвращать список публичных атрибутов класса. При запуске команды вы
|
||||||
можете указать значение опций, используя синтаксис `--OptionName=OptionValue`. Это свяжет `OptionValue` с аттрибутом
|
можете указать значение опций, используя синтаксис `--OptionName=OptionValue`. Это свяжет `OptionValue` с атрибутом
|
||||||
`OptionName` класса контроллера.
|
`OptionName` класса контроллера.
|
||||||
|
|
||||||
Если значение по умолчанию опции - это массив, то при установке этой опции, при выполнении команды, значение бедет
|
Если значение по умолчанию опции - это массив, то при установке этой опции, при выполнении команды, значение будет
|
||||||
преобразовано в массив путём разделения входящей строки по запятым.
|
преобразовано в массив путём разделения входящей строки по запятым.
|
||||||
|
|
||||||
### Аргументы
|
### Аргументы
|
||||||
|
|
||||||
Кроме опций, команда может получать аргументы. Аргументы будут переданы в качестве параметров в метод действия,
|
Кроме опций, команда может получать аргументы. Аргументы будут переданы в качестве параметров в метод действия,
|
||||||
соответствующего запрошеной суб-команде. Первый аргумент соответствует первому параметру, второй соответственно второму,
|
соответствующего запрошенной суб-команде. Первый аргумент соответствует первому параметру, второй соответственно второму,
|
||||||
и так далее. Если переданных аргументов при вызове команды будет недостаточно, то параметрам будут назначены по
|
и так далее. Если переданных аргументов при вызове команды будет недостаточно, то параметрам будут назначены по
|
||||||
умолчанию, если они определены. Если значения по умолчанию не определены, и не былы переданы, команда завершит
|
умолчанию, если они определены. Если значения по умолчанию не определены, и не были переданы, команда завершит
|
||||||
выполнение с ошибкой.
|
выполнение с ошибкой.
|
||||||
|
|
||||||
Вы можете использовать указание типа `array`, чтобы указать что аргумент должен рассматриваться как массив. Массив
|
Вы можете использовать указание типа `array`, чтобы указать что аргумент должен рассматриваться как массив. Массив
|
||||||
@@ -172,7 +172,7 @@ class ExampleController extends \yii\console\Controller
|
|||||||
Для примера `1` может указывать на неизвестную ошибку, а все коды выше могут быть зарезервированы под специфичные
|
Для примера `1` может указывать на неизвестную ошибку, а все коды выше могут быть зарезервированы под специфичные
|
||||||
ошибки: ошибки ввода, повреждённые файлы, и что-то другое.
|
ошибки: ошибки ввода, повреждённые файлы, и что-то другое.
|
||||||
|
|
||||||
Для того, чтобы ваша консольная команда возвращала код возврата, прочто верните целое число в методе действия контроллера:
|
Для того, чтобы ваша консольная команда возвращала код возврата, просто верните целое число в методе действия контроллера:
|
||||||
|
|
||||||
```php
|
```php
|
||||||
public function actionIndex()
|
public function actionIndex()
|
||||||
|
|||||||
@@ -313,7 +313,7 @@ function foo($model, $attribute) {
|
|||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
Этот валидатор проверяет, что вхоящее значение соответствует одному из значений, указанных в `range`.
|
Этот валидатор проверяет, что входящее значение соответствует одному из значений, указанных в `range`.
|
||||||
|
|
||||||
- `range`: список значений, с которыми будет сравниваться входящее значение.
|
- `range`: список значений, с которыми будет сравниваться входящее значение.
|
||||||
- `strict`: должно ли сравнение входящего значения со списком значений быть строгим (учитывать тип данных).
|
- `strict`: должно ли сравнение входящего значения со списком значений быть строгим (учитывать тип данных).
|
||||||
|
|||||||
Reference in New Issue
Block a user