From 2e65d0ce2858605dfbbe32de9ca0da9f28ff75fc Mon Sep 17 00:00:00 2001 From: scorchsoft Date: Thu, 27 Aug 2015 11:10:47 +0100 Subject: [PATCH 1/5] More details for input-validation.md --- docs/guide/input-validation.md | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/docs/guide/input-validation.md b/docs/guide/input-validation.md index bc560020ea..d1fb3b0e6e 100644 --- a/docs/guide/input-validation.md +++ b/docs/guide/input-validation.md @@ -373,7 +373,7 @@ class MyForm extends Model A standalone validator is a class extending [[yii\validators\Validator]] or its child class. You may implement its validation logic by overriding the [[yii\validators\Validator::validateAttribute()]] method. If an attribute fails the validation, call [[yii\base\Model::addError()]] to save the error message in the model, like you do -with [inline validators](#inline-validators). For example, +with [inline validators](#inline-validators). For example you will need to create the above validator into [[components/valdators/CountryValidator]], ```php namespace app\components; @@ -391,11 +391,40 @@ class CountryValidator extends Validator } ``` + + If you want your validator to support validating a value without a model, you should also override [[yii\validators\Validator::validate()]]. You may also override [[yii\validators\Validator::validateValue()]] instead of `validateAttribute()` and `validate()` because by default the latter two methods are implemented by calling `validateValue()`. +Here is an example of how you could set up the above within your model +```php +namespace app\models; + +use Yii; +use yii\base\Model; +use app\components\validators\CountryValidator; + +class EntryForm extends Model { + + public $name; + public $email; + public $country; + + public function rules(){ + + $r = [ + [['name', 'email'], 'required'], + ['country',CountryValidator::className()], + ['email','email'], + ]; + return $r; + } + +} +``` + ## Client-Side Validation From ae2dea6b2092c8c18a5d23939dbcc78b69a7e0cc Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Tue, 1 Sep 2015 01:42:02 +0300 Subject: [PATCH 2/5] More details for input-validation.md --- docs/guide/input-validation.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/guide/input-validation.md b/docs/guide/input-validation.md index d1fb3b0e6e..93865c867c 100644 --- a/docs/guide/input-validation.md +++ b/docs/guide/input-validation.md @@ -373,7 +373,10 @@ class MyForm extends Model A standalone validator is a class extending [[yii\validators\Validator]] or its child class. You may implement its validation logic by overriding the [[yii\validators\Validator::validateAttribute()]] method. If an attribute fails the validation, call [[yii\base\Model::addError()]] to save the error message in the model, like you do -with [inline validators](#inline-validators). For example you will need to create the above validator into [[components/valdators/CountryValidator]], +with [inline validators](#inline-validators). + + +For example the inline validator above could be moved into new [[components/valdators/CountryValidator]] class. ```php namespace app\components; @@ -391,14 +394,13 @@ class CountryValidator extends Validator } ``` - - If you want your validator to support validating a value without a model, you should also override [[yii\validators\Validator::validate()]]. You may also override [[yii\validators\Validator::validateValue()]] instead of `validateAttribute()` and `validate()` because by default the latter two methods are implemented by calling `validateValue()`. -Here is an example of how you could set up the above within your model +Below is an example of how you could use the above validator class within your model. + ```php namespace app\models; @@ -406,22 +408,20 @@ use Yii; use yii\base\Model; use app\components\validators\CountryValidator; -class EntryForm extends Model { - +class EntryForm extends Model +{ public $name; public $email; public $country; - public function rules(){ - - $r = [ + public function rules() + { + return [ [['name', 'email'], 'required'], - ['country',CountryValidator::className()], - ['email','email'], + ['country', CountryValidator::className()], + ['email', 'email'], ]; - return $r; } - } ``` From 2085dda183642bde361595f92ed36d2baecadf4e Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Tue, 1 Sep 2015 12:25:03 +0300 Subject: [PATCH 3/5] Fixed typo --- docs/guide/input-validation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guide/input-validation.md b/docs/guide/input-validation.md index 93865c867c..6e939dd0f6 100644 --- a/docs/guide/input-validation.md +++ b/docs/guide/input-validation.md @@ -376,7 +376,7 @@ fails the validation, call [[yii\base\Model::addError()]] to save the error mess with [inline validators](#inline-validators). -For example the inline validator above could be moved into new [[components/valdators/CountryValidator]] class. +For example the inline validator above could be moved into new [[components/validators/CountryValidator]] class. ```php namespace app\components; From 240fa73bdd2a109ca921884afd1b6ba2e5e64d55 Mon Sep 17 00:00:00 2001 From: Nobuo Kihara Date: Wed, 2 Sep 2015 23:51:32 +0900 Subject: [PATCH 4/5] docs/guide-ja/db-migrations.md updated --- docs/guide-ja/db-migrations.md | 64 +++++++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 9 deletions(-) diff --git a/docs/guide-ja/db-migrations.md b/docs/guide-ja/db-migrations.md index 3b090a3f61..1fd5d2f6dc 100644 --- a/docs/guide-ja/db-migrations.md +++ b/docs/guide-ja/db-migrations.md @@ -30,7 +30,7 @@ Yii は一連のマイグレーションコマンドラインツールを提供 この節では、これらのツールを使用して、さまざまなタスクをどうやって達成するかを詳細に説明します。 各ツールの使用方法は、ヘルプコマンド `yii help migrate` によっても知ることが出来ます。 -> Note|注意: マイグレーションはデータベーススキーマに影響を及ぼすだけでなく、既存のデータを新しいスキーマに合うように修正したり、RBAC 階層を作成したり、キャッシュをクリーンアップしたりすることも出来ます。 +> Tip|ヒント: マイグレーションはデータベーススキーマに影響を及ぼすだけでなく、既存のデータを新しいスキーマに合うように修正したり、RBAC 階層を作成したり、キャッシュをクリーンアップしたりすることも出来ます。 ## マイグレーションを作成する @@ -56,20 +56,32 @@ yii migrate/create create_news_table ```php Info|情報: 抽象型と物理型の対応関係は、それぞれの `QueryBuilder` の具象クラスの [[yii\db\QueryBuilder::$typeMap|$typeMap]] プロパティによって定義されています。 +バージョン 2.0.6 以降は、スキーマビルダにカラムのスキーマを定義するための更に便利な方法が導入されたため、上記のマイグレーションは次のように書くことが出来るようになっています。 + +```php +createTable('news', [ + 'id' => $this->primaryKey(), + 'title' => $this->string()->notNull(), + 'content' => $this->text(), + ]); + } + + public function down() + { + $this->dropTable('news'); + } +} +``` + +カラムの型を定義するために利用できる全てのメソッドのリストは、[[yii\db\SchemaBuilderTrait]] の API ドキュメントで参照することが出来ます。 ### トランザクションを使うマイグレーション @@ -143,8 +182,8 @@ MySQL の場合は、`TYPE_PK` は `int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY` 次の例では、`news` テーブルを作成するだけでなく、このテーブルに初期値となる行を挿入しています。 ```php +createTable('news', [ - 'id' => 'pk', - 'title' => Schema::TYPE_STRING . ' NOT NULL', - 'content' => Schema::TYPE_TEXT, + 'id' => $this->primaryKey(), + 'title' => $this->string()->notNull(), + 'content' => $this->text(), ]); - + $this->insert('news', [ 'title' => 'test 1', 'content' => 'content 1', @@ -213,6 +252,12 @@ class m150101_185401_create_news_table extends Migration これは、通常、データベースからのデータ取得については、メッセージを追加して表示する必要がないからです。 更にまた、複雑なクエリを構築して実行するためには、強力な [クエリビルダ](db-query-builder.md) を使うことが出来るからです。 +> Note|注意: マイグレーションを使ってデータを操作する場合に、あなたは、あなたの [アクティブレコード](db-active-record.md) クラスをデータ操作に使えば便利じゃないか、と気付くかもしれません。 +> なぜなら、いくつかのロジックは既にアクティブレコードで実装済みだから、と。 +> しかしながら、マイグレーションの中で書かれるコードが永久に不変であることを本質とするのと対照的に、アプリケーションのロジックは変化にさらされるものであるということを心に留めなければなりません。 +> 従って、マイグレーションのコードでアクティブレコードを使用していると、アクティブレコードのレイヤにおけるロジックの変更が思いがけず既存のマイグレーションを破壊することがあり得ます。 +> このような理由のため、マイグレーションのコードはアクティブレコードのようなアプリケーションの他のロジックから独立を保つべきです。 + ## マイグレーションを適用する @@ -390,7 +435,8 @@ yii migrate --db=db2 例えば、次のようにします。 ```php -use yii\db\Schema; + Date: Wed, 2 Sep 2015 07:55:02 -0700 Subject: [PATCH 5/5] Update installation docs to latest version of composer-asset-plugin [ci skip] Anyone stuck on 1.0.0 will be riddled with deprecation notices. --- docs/guide/start-installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guide/start-installation.md b/docs/guide/start-installation.md index 41bafbe742..3e3c427b54 100644 --- a/docs/guide/start-installation.md +++ b/docs/guide/start-installation.md @@ -37,7 +37,7 @@ by running `composer self-update`. With Composer installed, you can install Yii by running the following commands under a Web-accessible folder: - composer global require "fxp/composer-asset-plugin:~1.0.0" + composer global require "fxp/composer-asset-plugin:~1.0.3" composer create-project --prefer-dist yiisoft/yii2-app-basic basic The first command installs the [composer asset plugin](https://github.com/francoispluchino/composer-asset-plugin/)