From a0a50835faecaba356ed2d72ccda51cc1fa8ddea Mon Sep 17 00:00:00 2001 From: Nobuo Kihara Date: Sat, 2 May 2015 01:12:13 +0900 Subject: [PATCH] docs/guide-ja updated [ci skip] --- docs/guide-ja/db-active-record.md | 19 +++++++++++++------ docs/guide-ja/input-file-upload.md | 2 +- docs/guide-ja/test-fixtures.md | 2 +- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/docs/guide-ja/db-active-record.md b/docs/guide-ja/db-active-record.md index b423fa0c0b..e7eca72efa 100644 --- a/docs/guide-ja/db-active-record.md +++ b/docs/guide-ja/db-active-record.md @@ -695,7 +695,7 @@ $customer = Customer::findOne(123); $orders = $customer->orders; ``` -> Info|情報: `xyz` という名前のリレーションを getter メソッド `getXyz()` によって宣言すると、`xyz` をオブジェクト [プロパティ](concept-properties.md) のようにアクセスすることが出来るようになります。 +> Info|情報: `xyz` という名前のリレーションを getter メソッド `getXyz()` によって宣言すると、`xyz` を [オブジェクトプロパティ](concept-properties.md) のようにアクセスすることが出来るようになります。 名前は大文字と小文字を区別することに注意してください。 リレーションが [[yii\db\ActiveRecord::hasMany()|hasMany()]] によって宣言されている場合は、このリレーションプロパティにアクセスすると、関連付けられたアクティブレコードインスタンスの配列が返されます。 @@ -705,6 +705,16 @@ $orders = $customer->orders; その同じプロパティに再びアクセスしたときは、SQL 文を再実行することなく、以前の結果が返されます。 SQL 文の再実行を強制するためには、まず、リレーションプロパティの割り当てを解除 (unset) しなければなりません : `unset($customer->orders)`。 +> Note|注意: リレーションプロパティの概念は [オブジェクトプロパティ](concept-properties.md) の機能と同一であるように見えますが、一つ、重要な相違点があります。 +> 通常のオブジェクトプロパティでは、プロパティの値はそれを定義する getter メソッドと同じ型を持ちます。 +> しかし、リレーションプロパティにアクセスすると [[yii\db\ActiveRecord]] のインスタンスまたはその配列が返されるのに対して、リレーションメソッドは [[yii\db\ActiveQuery]] のインスタンスを返します。 +> +> ```php +> $customer->orders; // `Order` オブジェクトの配列 +> $customer->getOrders(); // ActiveQuery のインスタンス +> ``` +> +> このことは、次の項で説明するように、カスタマイズしたクエリを作成するのに役に立ちます。 ### 動的なリレーショナルクエリ @@ -721,6 +731,8 @@ $orders = $customer->getOrders() ->all(); ``` +リレーションプロパティにアクセスする場合と違って、リレーションメソッドによって動的なリレーショナルクエリを実行する場合は、同じ動的なリレーショナルクエリが以前に実行されたことがあっても、毎回、SQL 文が実行されます。 + さらに進んで、もっと簡単に動的なリレーショナルクエリを実行できるように、リレーションの宣言をパラメータ化したい場合もあるでしょう。 例えば、`bigOrders` リレーションを下記のように宣言することが出来ます。 @@ -746,11 +758,6 @@ $orders = $customer->getBigOrders(200)->all(); $orders = $customer->bigOrders; ``` -> Note|注意: リレーションメソッドが [[yii\db\ActiveQuery]] インスタンスを返すのに対して、リレーションプロパティにアクセスすると [[yii\db\ActiveRecord]] のインスタンスまたはその配列が返されます。 - この点で、通常のオブジェクト [プロパティ](concept-properties.md) が、そのプロパティを定義する getter メソッドと同じ型の値を持つのと異なります。 - -リレーショナルプロパティにアクセスする場合と異なって、リレーショナルメソッドを使って動的なリレーショナルクエリを実行する場合は、前に同じ動的リレーショナルクエリが実行されている場合であっても、毎回、SQL 文が実行されます。 - ### 中間テーブルによるリレーション diff --git a/docs/guide-ja/input-file-upload.md b/docs/guide-ja/input-file-upload.md index d327836fcf..03679d39c9 100644 --- a/docs/guide-ja/input-file-upload.md +++ b/docs/guide-ja/input-file-upload.md @@ -170,7 +170,7 @@ public function rules() 画像をアップロードするときは、[[yii\validators\ImageValidator|ImageValidator]] が重宝するでしょう。 このバリデータは、属性が有効な画像を受け取ったか否かを検証します。 -画像は、保存するか、または、[Imagine エクステンション](https://github.com/yiisoft/yii2/tree/master/extensions/imagine) によって処理することが出来ます。 +画像は、保存するか、または、[Imagine エクステンション](https://github.com/yiisoft/yii2-imagine) によって処理することが出来ます。 複数のファイルをアップロードする -------------------------------- diff --git a/docs/guide-ja/test-fixtures.md b/docs/guide-ja/test-fixtures.md index 13368f4834..16a1db5ff5 100644 --- a/docs/guide-ja/test-fixtures.md +++ b/docs/guide-ja/test-fixtures.md @@ -373,4 +373,4 @@ Auto-generating fixtures Yii also can auto-generate fixtures for you based on some template. You can generate your fixtures with different data on different languages and formats. These feature is done by [Faker](https://github.com/fzaninotto/Faker) library and `yii2-faker` extension. -See extension [guide](https://github.com/yiisoft/yii2/tree/master/extensions/faker) for more docs. +See extension [guide](https://github.com/yiisoft/yii2-faker) for more docs.