Skip to content

Commit

Permalink
docs/guide-ja/db-* and docs/guide-ja/input-* revised [ci skip] (yiiso…
Browse files Browse the repository at this point in the history
…ft#16174)

* guide-ja/db revising WIP [ci skip]

* guide-ja/db-dao.md, guide-ja/db-query-builder.md revised [ci skip]

* guide-ja/db-active-record.md revising WIP [ci skip]

* guide-ja/db-active-record.md revising WIP [ci skip]

* guide-ja/db-active-record.md revising WIP [ci skip]

* guide-ja/db-active-record.md revising WIP [ci skip]

* guide-ja/db-active-record.md revised [ci skip]

* guide-ja/db-migrations.md revised [ci skip]

* guide-ja/input-forms.md revised [ci skip]

* guide-ja/input-validation.md revised [ci skip]

* guide-ja/input-file-upload.md revised [ci skip]

* guide-ja/input revised [ci skip]
  • Loading branch information
softark authored and samdark committed Apr 26, 2018
1 parent 1851330 commit b9e345b
Show file tree
Hide file tree
Showing 10 changed files with 708 additions and 483 deletions.
386 changes: 232 additions & 154 deletions docs/guide-ja/db-active-record.md

Large diffs are not rendered by default.

125 changes: 74 additions & 51 deletions docs/guide-ja/db-dao.md

Large diffs are not rendered by default.

179 changes: 111 additions & 68 deletions docs/guide-ja/db-migrations.md

Large diffs are not rendered by default.

210 changes: 118 additions & 92 deletions docs/guide-ja/db-query-builder.md

Large diffs are not rendered by default.

34 changes: 18 additions & 16 deletions docs/guide-ja/input-file-upload.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
ファイルをアップロードする
==========================

Yii におけるファイルのアップロードは、通常、アップロードされる個々のファイルを `UploadedFile` としてカプセル化する [[yii\web\UploadedFile]] の助けを借りて実行されます。
これを [[yii\widgets\ActiveForm]] および [モデル](structure-models.md) と組み合わせることで、安全なファイル・アップロード・メカニズムを簡単に実装することが出来ます。
Yii におけるファイルのアップロードは、通常、アップロードされる個々のファイルを `UploadedFile` としてカプセル化する
[[yii\web\UploadedFile]] の助けを借りて実行されます。これを [[yii\widgets\ActiveForm]] および [モデル](structure-models.md)
と組み合わせることで、安全なファイル・アップロード・メカニズムを簡単に実装することが出来ます。


## モデルを作成する <span id="creating-models"></span>

プレーンなテキスト・インプットを扱うのと同じように、一つのファイルをアップロードするためには、モデル・クラスを作成して、そのモデルの一つの属性を使ってアップロードされるファイルのインスタンスを保持します。
また、ファイルのアップロードを検証するために、検証規則も宣言しなければなりません。
例えば、

プレーンなテキスト・インプットを扱うのと同じように、一つのファイルをアップロードするためには、モデル・クラスを作成して、
そのモデルの一つの属性を使ってアップロードされるファイルのインスタンスを保持します。
また、ファイルのアップロードを検証するために、検証規則も宣言しなければなりません。例えば、

```php
namespace app\models;
Expand Down Expand Up @@ -52,11 +52,9 @@ class UploadForm extends Model
詳細については、[コア・バリデータ](tutorial-core-validators.md#file) のセクションを参照してください。

> Tip: 画像をアップロードしようとする場合は、`image` バリデータを代りに使うことを考慮しても構いません。
`image` バリデータは [[yii\validators\ImageValidator]] によって実装されており、属性が有効な画像、すなわち、保存したり [Imagine エクステンション](https://github.com/yiisoft/yii2-imagine) を使って処理したりすることが可能な有効な画像を、受け取ったかどうかを検証します。

`image` バリデータは [[yii\validators\ImageValidator]] によって実装されており、属性が有効な画像、すなわち、
保存したり [Imagine エクステンション](https://github.com/yiisoft/yii2-imagine) を使って処理したりすることが可能な有効な画像を、受け取ったかどうかを検証します。

上記のコードにおいて作成した `UploadForm` というモデルは、HTML フォームで `<input type="file">` となる `$file` という属性を持ちます。
この属性は [[yii\validators\FileValidator|FileValidator]] を使用する `file` という検証規則を持ちます。

## ファイル・インプットをレンダリングする <span id="rendering-file-input"></span>

Expand All @@ -79,8 +77,8 @@ use yii\widgets\ActiveForm;
ファイルが正しくアップロードされるように、フォームに `enctype` オプションを追加することを憶えておくのは重要なことです。
`fileInput()` を呼ぶと `<input type="file">` のタグがレンダリングされて、ユーザがアップロードするファイルを選ぶことが出来るようになります。

> Tip: バージョン 2.0.8 以降では、ファイル・インプットのフィールドが使われているときは、[[yii\widgets\ActiveField::fileInput|fileInput]] がフォームに `enctype` オプションを自動的に追加します。
> Tip: バージョン 2.0.8 以降では、ファイル・インプットのフィールドが使われているときは、
[[yii\widgets\ActiveField::fileInput|fileInput]] がフォームに `enctype` オプションを自動的に追加します。

## 繋ぎ合せる <span id="wiring-up"></span>

Expand Down Expand Up @@ -113,7 +111,8 @@ class SiteController extends Controller
}
```

上記のコードでは、フォームが送信されると [[yii\web\UploadedFile::getInstance()]] メソッドが呼ばれて、アップロードされたファイルが `UploadedFile` のインスタンスとして表現されます。
上記のコードでは、フォームが送信されると [[yii\web\UploadedFile::getInstance()]] メソッドが呼ばれて、
アップロードされたファイルが `UploadedFile` のインスタンスとして表現されます。
そして、次に、モデルの検証によってアップロードされたファイルが有効なものであることを確かめ、サーバにファイルを保存します。


Expand All @@ -123,7 +122,8 @@ class SiteController extends Controller

最初に、モデル・クラスを修正して、`file` 検証規則に `maxFiles` オプションを追加して、アップロードを許可されるファイルの最大数を制限しなければなりません。
`maxFiles``0` に設定することは、同時にアップロード出来るファイル数に制限がないことを意味します。
同時にアップロードすることを許されるファイルの数は、また、PHP のディレクティブ [`max_file_uploads`](http://php.net/manual/ja/ini.core.php#ini.max-file-uploads) (デフォルト値は 20) によっても制限されます。
同時にアップロードすることを許されるファイルの数は、また、PHP のディレクティブ
[`max_file_uploads`](http://php.net/manual/ja/ini.core.php#ini.max-file-uploads) (デフォルト値は 20) によっても制限されます。
`upload()` メソッドも、アップロードされた複数のファイルを一つずつ保存するように修正しなければなりません。

```php
Expand Down Expand Up @@ -160,7 +160,8 @@ class UploadForm extends Model
}
```

ビュー・ファイルでは、`fileInput()` の呼び出しに `multiple` オプションを追加して、ファイル・アップロードのフィールドが複数のファイルを受け取ることが出来るようにしなければなりません。
ビュー・ファイルでは、`fileInput()` の呼び出しに `multiple` オプションを追加して、
ファイル・アップロードのフィールドが複数のファイルを受け取ることが出来るようにしなければなりません。

```php
<?php
Expand All @@ -176,7 +177,8 @@ use yii\widgets\ActiveForm;
<?php ActiveForm::end() ?>
```

そして、最後に、コントローラ・アクションの中では、`UploadedFile::getInstance()` の代りに `UploadedFile::getInstances()` を呼んで、`UploadedFile` インスタンスの配列を `UploadForm::imageFiles` に代入しなければなりません。
そして、最後に、コントローラ・アクションの中では、`UploadedFile::getInstance()` の代りに `UploadedFile::getInstances()` を呼んで、
`UploadedFile` インスタンスの配列を `UploadForm::imageFiles` に代入しなければなりません。

```php
namespace app\controllers;
Expand Down
29 changes: 17 additions & 12 deletions docs/guide-ja/input-form-javascript.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,10 @@ function (event, messages, deferreds)
引数は以下の通り:

- `event`: イベントのオブジェクト。
- `messages`: 連想配列で、キーは属性の ID、値は対応する属性のエラー・メッセージの配列です。
- `deferreds`: Deferred オブジェクトの配列。`deferreds.add(callback)` を使って、新しい deferrd な検証を追加することが出来ます。
- `messages`: 連想配列で、キーは属性の ID、
値は対応する属性のエラー・メッセージの配列です。
- `deferreds`: Deferred オブジェクトの配列。`deferreds.add(callback)` を使って、
新しい deferrd な検証を追加することが出来ます。

ハンドラが真偽値 `false` を返すと、このイベントに続くフォームの検証は中止されます。
その結果、`afterValidate` イベントもトリガされません。
Expand All @@ -53,13 +55,14 @@ function (event, messages, errorAttributes)
引数は以下の通り:

- `event`: イベントのオブジェクト。
- `messages`: 連想配列で、キーは属性の ID、値は対応する属性のエラー・メッセージの配列です。
- `errorAttributes`: 検証エラーがある属性の配列。この引数の構造については `attributeDefaults` を参照して下さい。
- `messages`: 連想配列で、キーは属性の ID、
値は対応する属性のエラー・メッセージの配列です。
- `errorAttributes`: 検証エラーがある属性の配列。
この引数の構造については `attributeDefaults` を参照して下さい。

### `beforeValidateAttribute`

`beforeValidateAttribute` イベントは、属性を検証する前にトリガされます。

イベント・ハンドラのシグニチャは以下の通り:

```javascript
Expand All @@ -69,9 +72,11 @@ function (event, attribute, messages, deferreds)
引数は以下の通り:

- `event`: イベントのオブジェクト。
- `attribute`: 検証される属性。この引数の構造については `attributeDefaults` を参照して下さい。
- `attribute`: 検証される属性。
この引数の構造については `attributeDefaults` を参照して下さい。
- `messages`: 指定された属性に対する検証エラー・メッセージを追加することが出来る配列。
- `deferreds`: Deferred オブジェクトの配列。`deferreds.add(callback)` を使って、新しい deferrd な検証を追加することが出来ます。
- `deferreds`: Deferred オブジェクトの配列。
`deferreds.add(callback)` を使って、新しい deferrd な検証を追加することが出来ます。

ハンドラが真偽値 `false` を返すと、指定された属性の検証は中止されます。
その結果、`afterValidateAttribute` イベントもトリガされません。
Expand All @@ -89,8 +94,10 @@ function (event, attribute, messages)
引数は以下の通り:

- `event`: イベントのオブジェクト。
- `attribute`: 検証される属性。この引数の構造については `attributeDefaults` を参照して下さい。
- `messages`: 指定された属性に対する追加の検証エラー・メッセージを追加することが出来る配列。
- `attribute`: 検証される属性。
この引数の構造については `attributeDefaults` を参照して下さい。
- `messages`: 指定された属性に対する追加の検証エラー・メッセージを追加することが
出来る配列。

### `beforeSubmit`

Expand All @@ -102,9 +109,7 @@ function (event, attribute, messages)
function (event)
```

引数は以下の通り:

- `event`: イベントのオブジェクト。
ここで、`event` は、イベントのオブジェクトです。

ハンドラが真偽値 `false` を返すと、フォームの送信は中止されます。

Expand Down
Loading

0 comments on commit b9e345b

Please sign in to comment.