Commit 1dc9dc03 by Alexander Makarov

Merge pull request #6370 from softark/docs-guide-ja-db-query-builder

docs/guide-ja/db-query-builder.md added [ci skip]
parents fefd3d9b 7b0f6669
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
> Note|注意: この節はまだ執筆中です。 > Note|注意: この節はまだ執筆中です。
Yii は、PHP の [PDO](http://www.php.net/manual/ja/book.pdo.php) の上に構築されたデータベースアクセスレイヤを含んでいます。 Yii は、PHP の [PDO](http://www.php.net/manual/ja/book.pdo.php) の上に構築されたデータベースアクセスレイヤを含んでいます。
データベースアクセスオブジェクト (DAO) のインタフェイスは、統一された API を提供し、さまざまなデータベース製品間に存在する不統一をいくらか解決します。 データベースアクセスオブジェクト (DAO) のインタフェイスは、統一された API を提供し、さまざまなデータベース製品間に存在する不統一のいくらかを解決します。
アクティブレコードがモデルを通じてのデータベースとの相互作用を提供し、クエリビルダが動的なクエリの構成を支援する一方で、DAO アクティブレコードは、モデルを通じてのデータベースとの相互作用を提供し、クエリビルダは、動的なクエリの作成を支援します。
はデータベースに対して直接に SQL を実行する単純で効率的な方法を提供するものです。 一方、DAO はデータベースに対して直接に SQL を実行する単純で効率的な方法を提供します。
実行すべきクエリが高価なものである場合、かつ/または、アプリケーションモデル (および対応するビジネスロジック) が必要でない場合に、あなたは DAO を使いたいと思うでしょう。 実行すべきクエリが高価なものである場合、かつ/または、アプリケーションモデル (および対応するビジネスロジック) が必要でない場合に、あなたは DAO を使いたいと思うでしょう。
Yii はデフォルトで下記の DBMS をサポートしています。 Yii はデフォルトで下記の DBMS をサポートしています。
...@@ -256,7 +256,7 @@ $command->bindValue(':id', $_GET['id']); ...@@ -256,7 +256,7 @@ $command->bindValue(':id', $_GET['id']);
$post = $command->queryOne(); $post = $command->queryOne();
``` ```
プリペアドステートメントを使うもう一つの目的は (セキュリティの向上のほかに)、一度だけプリペアしたクエリを複数回実行することが出来るという点にあります。 プリペアドステートメントを使うもう一つの目的は (セキュリティの向上のほかに)、一度だけ準備したクエリを複数回実行することが出来るという点にあります。
```php ```php
$command = $connection->createCommand('DELETE FROM post WHERE id=:id'); $command = $connection->createCommand('DELETE FROM post WHERE id=:id');
...@@ -384,7 +384,7 @@ DBMS によっては、接続全体に対してのみ分離レベルの設定を ...@@ -384,7 +384,7 @@ DBMS によっては、接続全体に対してのみ分離レベルの設定を
'username' => 'slave', 'username' => 'slave',
'password' => '', 'password' => '',
'attributes' => [ 'attributes' => [
// 短めの接続タイムアウトを使う // 短めの接続タイムアウトを使う
PDO::ATTR_TIMEOUT => 10, PDO::ATTR_TIMEOUT => 10,
], ],
], ],
...@@ -439,7 +439,7 @@ $db->createCommand("UPDATE user SET username='demo' WHERE id=1")->execute(); ...@@ -439,7 +439,7 @@ $db->createCommand("UPDATE user SET username='demo' WHERE id=1")->execute();
'username' => 'master', 'username' => 'master',
'password' => '', 'password' => '',
'attributes' => [ 'attributes' => [
// 短めの接続タイムアウトを使う // 短めの接続タイムアウトを使う
PDO::ATTR_TIMEOUT => 10, PDO::ATTR_TIMEOUT => 10,
], ],
], ],
...@@ -455,7 +455,7 @@ $db->createCommand("UPDATE user SET username='demo' WHERE id=1")->execute(); ...@@ -455,7 +455,7 @@ $db->createCommand("UPDATE user SET username='demo' WHERE id=1")->execute();
'username' => 'slave', 'username' => 'slave',
'password' => '', 'password' => '',
'attributes' => [ 'attributes' => [
// 短めの接続タイムアウトを使う // 短めの接続タイムアウトを使う
PDO::ATTR_TIMEOUT => 10, PDO::ATTR_TIMEOUT => 10,
], ],
], ],
......
...@@ -83,7 +83,7 @@ $url = Url::to(['post/view', 'id' => 100]); ...@@ -83,7 +83,7 @@ $url = Url::to(['post/view', 'id' => 100]);
### デフォルトルート <a name="default-route"></a> ### デフォルトルート <a name="default-route"></a>
リクエストから解析されたルートが空っぽになった場合は、いわゆる *デフォルトルート* が代りに使用されることになります。 リクエストから解析されたルートが空になった場合は、いわゆる *デフォルトルート* が代りに使用されることになります。
既定では、デフォルトルートは `site/index` であり、`site` コントローラの `index` アクションを指します。 既定では、デフォルトルートは `site/index` であり、`site` コントローラの `index` アクションを指します。
デフォルトルートは、次のように、アプリケーションの構成情報の中でアプリケーションの [[yii\web\Application::defaultRoute|defaultRoute]] プロパティを構成することによって、カスタマイズすることが出来ます。 デフォルトルートは、次のように、アプリケーションの構成情報の中でアプリケーションの [[yii\web\Application::defaultRoute|defaultRoute]] プロパティを構成することによって、カスタマイズすることが出来ます。
......
...@@ -450,7 +450,7 @@ HTTP リクエストの数とこれらのファイルの全体としてのダウ ...@@ -450,7 +450,7 @@ HTTP リクエストの数とこれらのファイルの全体としてのダウ
3. 各グループの CSS ファイルを一つのファイルに結合/圧縮する。JavaScript ファイルに対しても同様にこれを行う。 3. 各グループの CSS ファイルを一つのファイルに結合/圧縮する。JavaScript ファイルに対しても同様にこれを行う。
4. 各グループに対して新しいアセットバンドルを定義する。 4. 各グループに対して新しいアセットバンドルを定義する。
* [[yii\web\AssetBundle::css|css]] と [[yii\web\AssetBundle::js|js]] のプロパティに、それぞれ、結合された CSS ファイルと JavaScript ファイルをセットする。 * [[yii\web\AssetBundle::css|css]] と [[yii\web\AssetBundle::js|js]] のプロパティに、それぞれ、結合された CSS ファイルと JavaScript ファイルをセットする。
* 各グループに属する元のアセットバンドルをカスタマイズして、[[yii\web\AssetBundle::css|css]] と [[yii\web\AssetBundle::js|js]] のプロパティを空っぽにし、[[yii\web\AssetBundle::depends|depends]] プロパティにグループのために作られた新しいバンドルを指定する。 * 各グループに属する元のアセットバンドルをカスタマイズして、[[yii\web\AssetBundle::css|css]] と [[yii\web\AssetBundle::js|js]] のプロパティを空にし、[[yii\web\AssetBundle::depends|depends]] プロパティにグループのために作られた新しいバンドルを指定する。
この方法を使うと、ビューでアセットバンドルを登録したときに、元のバンドルが属するグループのための新しいアセットバンドルが自動的に登録されるようになります。 この方法を使うと、ビューでアセットバンドルを登録したときに、元のバンドルが属するグループのための新しいアセットバンドルが自動的に登録されるようになります。
そして、結果として、結合/圧縮されたアセットファイルが、元のファイルの代りに、ページにインクルードされます。 そして、結果として、結合/圧縮されたアセットファイルが、元のファイルの代りに、ページにインクルードされます。
......
...@@ -225,7 +225,7 @@ class User extends ActiveRecord ...@@ -225,7 +225,7 @@ class User extends ActiveRecord
## 検証規則<a name="validation-rules"></a> ## 検証規則<a name="validation-rules"></a>
モデルのデータをエンドユーザから受け取ったときは、データを検証して、それが一定の規則 (*検証規則*、あるいは、いわゆる *ビジネスルール*) を満たしていることを確認しなければなりません。 モデルのデータをエンドユーザから受け取ったときは、データを検証して、それが一定の規則 (*検証規則*、あるいは、いわゆる *ビジネスルール*) を満たしていることを確認しなければなりません。
`ContactForm` モデルを例に挙げるなら、全ての属性が空っぽではなく、`email` 属性が有効なメールアドレスを含んでいることを確認したいでしょう。 `ContactForm` モデルを例に挙げるなら、全ての属性が空ではなく、`email` 属性が有効なメールアドレスを含んでいることを確認したいでしょう。
いずれかの属性の値が対応するビジネスルールを満たしていないときは、ユーザがエラーを訂正するのを助ける適切なエラーメッセージが表示されるべきです。 いずれかの属性の値が対応するビジネスルールを満たしていないときは、ユーザがエラーを訂正するのを助ける適切なエラーメッセージが表示されるべきです。
受信したデータを検証するために、[[yii\base\Model::validate()]] を呼ぶことが出来ます。 受信したデータを検証するために、[[yii\base\Model::validate()]] を呼ぶことが出来ます。
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment