Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yii2
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PSDI Army
yii2
Commits
04009088
Commit
04009088
authored
Dec 15, 2014
by
Nobuo Kihara
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
docs/guide-ja/input-validation.md - WIP [ci skip]
parent
96ce5b9b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
23 additions
and
24 deletions
+23
-24
input-validation.md
docs/guide-ja/input-validation.md
+23
-24
No files found.
docs/guide-ja/input-validation.md
View file @
04009088
...
@@ -277,27 +277,26 @@ public function actionSearch($name, $email)
...
@@ -277,27 +277,26 @@ public function actionSearch($name, $email)
## バリデータを作成する <a name="creating-validators"></a>
## バリデータを作成する <a name="creating-validators"></a>
Besides using the
[
core validators
](
tutorial-core-validators.md
)
included in the Yii releases, you may also
Yii のリリースに含まれている
[
コアバリデータ
](
tutorial-core-validators.md
)
を使う以外に、あなた自身のバリデータを作成することも出来ます。
create your own validators. You may create inline validators or standalone validators.
インラインバリデータとスタンドアロンバリデータを作ることが出来ます。
###
Inline Validators
<a name="inline-validators"></a>
###
インラインバリデータ
<a name="inline-validators"></a>
An inline validator is one defined in terms of a model method or an anonymous function. The signature of
インラインバリデータは、モデルのメソッドまたは無名関数として定義されるバリデータです。
the method/function is:
メソッド/関数 のシグニチャは、
```
php
```
php
/**
/**
* @param string $attribute
the attribute currently being validated
* @param string $attribute
現在検証されている属性
* @param array $params
the additional name-value pairs given in the rule
* @param array $params
規則に与えられる追加の「名前-値」のペア
*/
*/
function
(
$attribute
,
$params
)
function
(
$attribute
,
$params
)
```
```
If an attribute fails the validation, the method/function should call
[
[yii\base\Model::addError()
]
] to save
属性が健勝に失敗した場合は、メソッド/関数 は
[
[yii\base\Model::addError()
]
] を呼んでエラーメッセージをモデルに保存し、後で読み出してエンドユーザに示ことが出来るようにしなければなりません。
the error message in the model so that it can be retrieved back later to present to end users.
Below are some examples:
下記にいくつかの例を示します。
```
php
```
php
use
yii\base\Model
;
use
yii\base\Model
;
...
@@ -310,13 +309,13 @@ class MyForm extends Model
...
@@ -310,13 +309,13 @@ class MyForm extends Model
public
function
rules
()
public
function
rules
()
{
{
return
[
return
[
//
an inline validator defined as the model method validateCountry()
//
モデルメソッド validateCountry() として定義されるインラインバリデータ
[
'country'
,
'validateCountry'
],
[
'country'
,
'validateCountry'
],
//
an inline validator defined as an anonymous function
//
無名関数として定義されるインラインバリデータ
[
'token'
,
function
(
$attribute
,
$params
)
{
[
'token'
,
function
(
$attribute
,
$params
)
{
if
(
!
ctype_alnum
(
$this
->
$attribute
))
{
if
(
!
ctype_alnum
(
$this
->
$attribute
))
{
$this
->
addError
(
$attribute
,
'
The token must contain letters or digits.
'
);
$this
->
addError
(
$attribute
,
'
トークンは英数字で構成しなければなりません。
'
);
}
}
}],
}],
];
];
...
@@ -325,16 +324,15 @@ class MyForm extends Model
...
@@ -325,16 +324,15 @@ class MyForm extends Model
public
function
validateCountry
(
$attribute
,
$params
)
public
function
validateCountry
(
$attribute
,
$params
)
{
{
if
(
!
in_array
(
$this
->
$attribute
,
[
'USA'
,
'Web'
]))
{
if
(
!
in_array
(
$this
->
$attribute
,
[
'USA'
,
'Web'
]))
{
$this
->
addError
(
$attribute
,
'
The country must be either "USA" or "Web".
'
);
$this
->
addError
(
$attribute
,
'
国は "USA" または "Web" でなければなりません。
'
);
}
}
}
}
}
}
```
```
> Note: By default, inline validators will not be applied if their associated attributes receive empty inputs
> Note|注意: 既定では、インラインバリデータは、関連付けられている属性が空の入力値を受け取ったり、既に何らかの検証規則に失敗したりしている場合には、適用されません。
or if they have already failed some validation rules. If you want to make sure a rule is always applied,
> 規則が常に適用されることを保証したい場合は、規則の宣言において [[yii\validators\Validator::skipOnEmpty|skipOnEmpty]] および/または [[yii\validators\Validator::skipOnError|skipOnError]] のプロパティを false に設定することが出来ます。
you may configure the
[
[yii\validators\Validator::skipOnEmpty|skipOnEmpty
]
] and/or
[
[yii\validators\Validator::skipOnError|skipOnError
]
]
> 例えば、
properties to be false in the rule declarations. For example:
>
>
> ```php
> ```php
> [
> [
...
@@ -343,12 +341,12 @@ class MyForm extends Model
...
@@ -343,12 +341,12 @@ class MyForm extends Model
> ```
> ```
###
Standalone Validators
<a name="standalone-validators"></a>
###
スタンドアロンバリデータ
<a name="standalone-validators"></a>
A standalone validator is a class extending
[
[yii\validators\Validator
]
] or its child class. You may implement
スタンドアロンバリデータは、
[
[yii\validators\Validator
]
] またはその子クラスを拡張するクラスです。
its validation logic by overriding the
[
[yii\validators\Validator::validateAttribute()
]
] method. If an attribute
[
[yii\validators\Validator::validateAttribute()
]
] メソッドをオーバーライドすることによって、その検証ロジックを実装することが出来ます。
fails the validation, call
[
[yii\base\Model::addError()
]
] to save the error message in the model, like you do
[
インラインバリデータ
](
#inline-validators
)
でするのと同じように、属性が検証に失敗した場合は、
[
[yii\base\Model::addError()
]
] を呼んでエラーメッセージをモデルに保存します。
with
[
inline validators
](
#inline-validators
)
. For example,
例えば、
```
php
```
php
namespace
app\components
;
namespace
app\components
;
...
@@ -360,12 +358,13 @@ class CountryValidator extends Validator
...
@@ -360,12 +358,13 @@ class CountryValidator extends Validator
public
function
validateAttribute
(
$model
,
$attribute
)
public
function
validateAttribute
(
$model
,
$attribute
)
{
{
if
(
!
in_array
(
$model
->
$attribute
,
[
'USA'
,
'Web'
]))
{
if
(
!
in_array
(
$model
->
$attribute
,
[
'USA'
,
'Web'
]))
{
$this
->
addError
(
$model
,
$attribute
,
'
The country must be either "USA" or "Web".
'
);
$this
->
addError
(
$model
,
$attribute
,
'
国は "USA" または "Web" でなければなりません。
'
);
}
}
}
}
}
}
```
```
If you want your validator to support validating a value without a model, you should also override
If you want your validator to support validating a value without a model, you should also override
[
[yii\validators\Validator::validate()
]
]. You may also override
[
[yii\validators\Validator::validateValue()
]
]
[
[yii\validators\Validator::validate()
]
]. You may also override
[
[yii\validators\Validator::validateValue()
]
]
instead of
`validateAttribute()`
and
`validate()`
because by default the latter two methods are implemented
instead of
`validateAttribute()`
and
`validate()`
because by default the latter two methods are implemented
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment