mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-14 22:30:27 +08:00
docs/guide-ja updated [ci skip]
This commit is contained in:
@ -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 のインスタンス
|
||||
> ```
|
||||
>
|
||||
> このことは、次の項で説明するように、カスタマイズしたクエリを作成するのに役に立ちます。
|
||||
|
||||
### 動的なリレーショナルクエリ <span id="dynamic-relational-query"></span>
|
||||
|
||||
@ -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 文が実行されます。
|
||||
|
||||
|
||||
### 中間テーブルによるリレーション <span id="junction-table"></span>
|
||||
|
||||
|
@ -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) によって処理することが出来ます。
|
||||
|
||||
複数のファイルをアップロードする
|
||||
--------------------------------
|
||||
|
@ -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.
|
||||
|
Reference in New Issue
Block a user