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
e6fe3027
Commit
e6fe3027
authored
Dec 20, 2014
by
Nobuo Kihara
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
docs/guide-ja/output-data-widgets.md - completed [ci skip]
parent
350b868b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
22 additions
and
26 deletions
+22
-26
README.md
docs/guide-ja/README.md
+1
-1
output-data-widgets.md
docs/guide-ja/output-data-widgets.md
+21
-25
No files found.
docs/guide-ja/README.md
View file @
e6fe3027
...
@@ -100,7 +100,7 @@ All Rights Reserved.
...
@@ -100,7 +100,7 @@ All Rights Reserved.
*
**TBD**
[
ページネーション
](
output-pagination.md
)
*
**TBD**
[
ページネーション
](
output-pagination.md
)
*
**TBD**
[
並べ替え
](
output-sorting.md
)
*
**TBD**
[
並べ替え
](
output-sorting.md
)
*
[
データプロバイダ
](
output-data-providers.md
)
*
[
データプロバイダ
](
output-data-providers.md
)
*
**翻訳中**
[
データウィジェット
](
output-data-widgets.md
)
*
[
データウィジェット
](
output-data-widgets.md
)
*
**翻訳中**
[
クライアントスクリプトを扱う
](
output-client-scripts.md
)
*
**翻訳中**
[
クライアントスクリプトを扱う
](
output-client-scripts.md
)
*
**翻訳中**
[
テーマ
](
output-theming.md
)
*
**翻訳中**
[
テーマ
](
output-theming.md
)
...
...
docs/guide-ja/output-data-widgets.md
View file @
e6fe3027
...
@@ -414,19 +414,19 @@ $query->andFilterWhere(['LIKE', 'author.name', $this->getAttribute('author.name'
...
@@ -414,19 +414,19 @@ $query->andFilterWhere(['LIKE', 'author.name', $this->getAttribute('author.name'
> Info|情報: `joinWith` およびバックグラウンドで実行されるクエリの詳細については、[アクティブレコード - リレーションを使ってテーブルを結合する](db-active-record.md#lazy-and-eager-loading) を参照してください。
> Info|情報: `joinWith` およびバックグラウンドで実行されるクエリの詳細については、[アクティブレコード - リレーションを使ってテーブルを結合する](db-active-record.md#lazy-and-eager-loading) を参照してください。
####
Using sql views for filtering, sorting and displaying data
####
SQL ビューを使って、データのフィルタリング・並べ替え・表示をする
There is also another approach that can be faster and more useful - sql views. For example, if we need to show the gridview
もう一つ別に、もっと高速で便利な手法があります。SQL ビューです。
with users and their profiles, we can do so in this way:
例えば、ユーザとユーザのプロファイルを一緒にグリッドビューに表示する必要がある場合、次のような SQL ビューを作成することが出来ます。
```
php
```
sql
CREATE OR REPLACE VIEW vw_user_info AS
CREATE OR REPLACE VIEW vw_user_info AS
SELECT user.
*
, user_profile.lastname, user_profile.firstname
SELECT user.
*
, user_profile.lastname, user_profile.firstname
FROM user, user_profile
FROM user, user_profile
WHERE user.id = user_profile.user_id
WHERE user.id = user_profile.user_id
```
```
Then you need to create the ActiveRecord that will be representing this view:
そして、このビューを表す ActiveRecord を作成します。
```
php
```
php
...
@@ -456,7 +456,7 @@ class UserView extends ActiveRecord
...
@@ -456,7 +456,7 @@ class UserView extends ActiveRecord
public function rules()
public function rules()
{
{
return [
return [
//
define here your rules
//
ここで規則を定義
];
];
}
}
...
@@ -466,7 +466,7 @@ class UserView extends ActiveRecord
...
@@ -466,7 +466,7 @@ class UserView extends ActiveRecord
public static function attributeLabels()
public static function attributeLabels()
{
{
return [
return [
//
define here your attribute labels
//
ここで属性のラベルを定義
];
];
}
}
...
@@ -474,27 +474,23 @@ class UserView extends ActiveRecord
...
@@ -474,27 +474,23 @@ class UserView extends ActiveRecord
}
}
```
```
After that you can use this UserView active record with search models, without additional specification of sorting and filtering attributes.
このようにした後は、この UserView アクティブレコードを検索用のモデルとともに使うことが出来ます。
All attributes will be working out of the box. Note that this approach has several pros and cons:
並べ替えやフィルタリングの属性を追加で定義する必要はありません。
全ての属性がそのままで動作します。
この手法にはいくつかの長所と短所があることに注意してください。
- you don't need to specify different sorting and filtering conditions. Everything works out of the box;
- 並べ替えとフィルタリングの条件をいろいろと定義する必要はありません。全てそのままで動きます。- データサイズが小さく、実行される SQL クエリの数が少ない (通常なら全てのリレーションについて一つずつ必要になる追加のクエリが要らない) ため、非常に高速になり得ます。
- it can be much faster because of the data size, count of sql queries performed (for each relation you will need an additional query);
- これは SQL ビューにかぶせた単純な UI に過ぎないもので、エンティティに含まれるドメインロジックを欠いています。
- since this is just a simple mapping UI on the sql view it lacks some domain logic that is in your entities, so if you have some methods like `isActive`,
従って、`isActive` や `isDeleted` などのような UI に影響するメソッドがある場合は、それらをこのクラスの中に複製する必要があります。
`isDeleted` or others that will influence the UI, you will need to duplicate them in this class too.
###
Multiple GridViews on one page
###
一つのページに複数のグリッドビュー
You can use more than one GridView on a single page but some additional configuration is needed so that
単一のページで二つ以上のグリッドビューを使うことが出来ますが、お互いが干渉しないように、追加の構成がいくつか必要になります。
they do not interfere with each other.
グリッドビューの複数のインスタンスを使う場合は、並べ替えとページネーションのリンクが違うパラメータ名を持って生成されるように構成して、それぞれのグリッドビューが独立した並べ替えとページネーションを持つことが出来るようにしなければなりません。
When using multiple instances of GridView you have to configure different parameter names for
そのためには、データプロバイダの [[yii\data\BaseDataProvider::$sort|sort]] と [[yii\data\BaseDataProvider::$pagination|pagination]] インスタンスの [[yii\data\Sort::sortParam|sortParam]] と [[yii\data\Pagination::pageParam|pageParam]] を設定します。
the generated sort and pagination links so that each GridView has its own individual sorting and pagination.
You do so by setting the [[yii\data\Sort::sortParam|sortParam]] and [[yii\data\Pagination::pageParam|pageParam]]
of the dataProvider's [[yii\data\BaseDataProvider::$sort|sort]] and [[yii\data\BaseDataProvider::$pagination|pagination]]
instances.
Assume we want to list the `Post` and `User` models for which we have already prepared two data providers
`Post` と `User` のリストを表示するために、二つのプロバイダ、`$userProvider` と `$postProvider` を準備済みであると仮定します。
in `$userProvider` and `$postProvider`:
```
php
```
php
use yii
\g
rid
\G
ridView;
use yii
\g
rid
\G
ridView;
...
@@ -516,6 +512,6 @@ echo GridView::widget([
...
@@ -516,6 +512,6 @@ echo GridView::widget([
]);
]);
```
```
###
Using GridView with Pjax
###
GridView を Pjax とともに使う
TBD
(内容未定)
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