mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-12 20:21:19 +08:00
Merge pull request #12373 from yiijan/docs-ja-0829
docs/guide-ja updated [ci skip]
This commit is contained in:
@@ -1310,12 +1310,12 @@ $customers = Customer::find()->with([
|
||||
アクティブレコードのインスタンスにクエリ結果からデータが投入されるときは、受け取ったデータセットのカラムの値が対応する属性に入れられます。
|
||||
|
||||
クエリ結果から追加のカラムや値を取得して、アクティブレコードの内部に格納することが出来ます。
|
||||
例えば、ホテルの客室の情報を含む 'room' という名前のテーブルがあるとしましょう。
|
||||
そして、全ての客室のデータは 'length' (長さ)、'width' (幅)、'height' (高さ) というフィールドを使って、部屋の幾何学的なサイズに関する情報を格納しているとします。
|
||||
例えば、ホテルの客室の情報を含む `room` という名前のテーブルがあるとしましょう。
|
||||
そして、全ての客室のデータは `length` (長さ)、`width` (幅)、`height` (高さ) というフィールドを使って、部屋の幾何学的なサイズに関する情報を格納しているとします。
|
||||
空いている全ての部屋の一覧を容積の降順で取得する必要がある場合を考えて見てください。
|
||||
レコードをその値で並べ替える必要があるので、PHP を使って容積を計算することは出来ません。
|
||||
しかし、同時に、一覧には 'volume' (容積) も表示したいでしょう。
|
||||
目的を達するためには、'Room' アクティブレコードクラスにおいて追加のフィールドを宣言し、'volume' の値を格納する必要があります。
|
||||
しかし、同時に、一覧には `volume` (容積) も表示したいでしょう。
|
||||
目的を達するためには、`Room` アクティブレコードクラスにおいて追加のフィールドを宣言し、`volume` の値を格納する必要があります。
|
||||
|
||||
```php
|
||||
class Room extends \yii\db\ActiveRecord
|
||||
@@ -1332,7 +1332,7 @@ class Room extends \yii\db\ActiveRecord
|
||||
$rooms = Room::find()
|
||||
->select([
|
||||
'{{room}}.*', // 全てのカラムを選択
|
||||
'([[length]] * [[width]].* [[height]]) AS volume', // 容積を計算
|
||||
'([[length]] * [[width]] * [[height]]) AS volume', // 容積を計算
|
||||
])
|
||||
->orderBy('volume DESC') // 並べ替えを適用
|
||||
->all();
|
||||
@@ -1344,7 +1344,7 @@ foreach ($rooms as $room) {
|
||||
|
||||
追加のフィールドが選択できることは、集計クエリに対して特に有効に機能します。
|
||||
注文の数とともに顧客の一覧を表示する必要がある場合を想定してください。
|
||||
まず初めに、`Customer` クラスの中で、'orders' リレーションと、注文数を格納するための追加のフィールドを宣言しなければなりません。
|
||||
まず初めに、`Customer` クラスの中で、`orders` リレーションと、注文数を格納するための追加のフィールドを宣言しなければなりません。
|
||||
|
||||
```php
|
||||
class Customer extends \yii\db\ActiveRecord
|
||||
|
||||
@@ -169,7 +169,7 @@ Yii::$app->user->login($identity);
|
||||
セッションが [[yii\web\User::enableSession|有効]] にされている場合は、ユーザの認証状態がセッション全体を通じて保持されるように、ユーザ識別情報がセッションに保管されます。
|
||||
クッキーベースのログイン (つまり "remember me"、「次回は自動ログイン」) が [[yii\web\User::enableAutoLogin|有効]] にされている場合は、ユーザ識別情報をクッキーにも保存して、クッキーが有効である限りは、ユーザの認証状態をクッキーから復元することが可能になります。
|
||||
|
||||
クッキーベースのログインを有効にするためには、アプリケーションの構成情報で [[yii\web\User::enableAutoLogin]] を true に構成する必要があります。
|
||||
クッキーベースのログインを有効にするためには、アプリケーションの構成情報で [[yii\web\User::enableAutoLogin]] を `true` に構成する必要があります。
|
||||
また、[[yii\web\User::login()]] メソッドを呼ぶときには、有効期間のパラメータを与える必要があります。
|
||||
|
||||
ユーザをログアウトさせるためには、単に次のように `logout()` を呼びます。
|
||||
@@ -189,10 +189,10 @@ Yii::$app->user->logout();
|
||||
[[yii\web\User]] クラスは、ログインとログアウトのプロセスで、いくつかのイベントを発生させます。
|
||||
|
||||
* [[yii\web\User::EVENT_BEFORE_LOGIN|EVENT_BEFORE_LOGIN]]: [[yii\web\User::login()]] の開始時に発生します。
|
||||
イベントハンドラがイベントの [[yii\web\UserEvent::isValid|isValid]] プロパティを false にセットした場合は、ログインのプロセスがキャンセルされます。
|
||||
イベントハンドラがイベントの [[yii\web\UserEvent::isValid|isValid]] プロパティを `false` にセットした場合は、ログインのプロセスがキャンセルされます。
|
||||
* [[yii\web\User::EVENT_AFTER_LOGIN|EVENT_AFTER_LOGIN]]: ログインが成功した時に発生します。
|
||||
* [[yii\web\User::EVENT_BEFORE_LOGOUT|EVENT_BEFORE_LOGOUT]]: [[yii\web\User::logout()]] の開始時に発生します。
|
||||
イベントハンドラがイベントの [[yii\web\UserEvent::isValid|isValid]] プロパティを false にセットした場合は、ログアウトのプロセスがキャンセルされます。
|
||||
イベントハンドラがイベントの [[yii\web\UserEvent::isValid|isValid]] プロパティを `false` にセットした場合は、ログアウトのプロセスがキャンセルされます。
|
||||
* [[yii\web\User::EVENT_AFTER_LOGOUT|EVENT_AFTER_LOGOUT]]: ログアウトが成功した時に発生します。
|
||||
|
||||
これらのイベントに反応して、ログイン監査、オンラインユーザ統計などの機能を実装することが出来ます。
|
||||
|
||||
Reference in New Issue
Block a user