mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-26 14:26:54 +08:00
Merge pull request #99 from iyuanc/patch-1
Update output-data-widgets.md
This commit is contained in:
@ -37,12 +37,12 @@ echo DetailView::widget([
|
||||
]);
|
||||
```
|
||||
|
||||
Remember that unlike [[yii\widgets\GridView|GridView]] which processes a set of models,
|
||||
[[yii\widgets\DetailView|DetailView]] processes just one. So most of the time there is no need for using closure since
|
||||
`$model` is the only one model for display and available in view as a variable.
|
||||
请记住,与处理一组模型的 [[yii\widgets\GridView|GridView]] 不同,
|
||||
[[yii\widgets\DetailView|DetailView]] 只处理一个。
|
||||
因为 `$model` 是唯一一个用于显示的模型,并且可以作为变量在视图中使用。
|
||||
|
||||
However some cases can make using of closure useful. For example when `visible` is specified and you want to prevent
|
||||
`value` calculations in case it evaluates to `false`:
|
||||
但是有些情况下可以使闭包有用。
|
||||
例如指定了 `visible`,并且你不想让`value` 的结果为 `false`:
|
||||
|
||||
```php
|
||||
echo DetailView::widget([
|
||||
@ -254,21 +254,21 @@ echo GridView::widget([
|
||||
]);
|
||||
```
|
||||
|
||||
In the above, `text` corresponds to [[\yii\i18n\Formatter::asText()]]. The value of the column is passed as the first
|
||||
argument. In the second column definition, `date` corresponds to [[\yii\i18n\Formatter::asDate()]]. The value of the
|
||||
column is, again, passed as the first argument while 'php:Y-m-d' is used as the second argument value.
|
||||
在上述代码中,`text` 对应于 [[\yii\i18n\Formatter::asText()]]。列的值作为第一个参数传递。
|
||||
在第二列的定义中,`date` 对应于 [[\yii\i18n\Formatter::asDate()]]。
|
||||
该列的值再次作为第一个参数传递同时 'php:Y-m-d' 被用作第二个参数。
|
||||
|
||||
For a list of available formatters see the [section about Data Formatting](output-formatting.md).
|
||||
有关可用格式化程序的列表,请参阅 [关于数据格式的部分](output-formatting.md)。
|
||||
|
||||
For configuring data columns there is also a shortcut format which is described in the
|
||||
API documentation for [[yii\grid\GridView::columns|columns]].
|
||||
对于配置数据列,还有一种快捷方式格式,
|
||||
请参阅 API 文档 [[yii\grid\GridView::columns|columns]]。
|
||||
|
||||
Use [[yii\grid\DataColumn::filter|filter]] and [[yii\grid\DataColumn::filterInputOptions|filterInputOptions]] to
|
||||
control HTML for the filter input.
|
||||
使用 [[yii\grid\DataColumn::filter|filter]] 和 [[yii\grid\DataColumn::filterInputOptions|filterInputOptions]]
|
||||
去控制过滤器输入的 HTML。
|
||||
|
||||
By default, column headers are rendered by [[yii\data\Sort::link]]. It could be adjusted using [[yii\grid\Column::header]].
|
||||
To change header text you should set [[yii\grid\DataColumn::$label]] like in the example above.
|
||||
By default the label will be populated from data model. For more details see [[yii\grid\DataColumn::getHeaderCellLabel]].
|
||||
默认情况下,列的头部有 [[yii\data\Sort::link]] 来呈现。它还可以使用 [[yii\grid\Column::header]] 来调整。
|
||||
要更改头部文本,您应该像上面的示例中那样设置 [[yii\grid\DataColumn::$label]]。
|
||||
默认情况下,标签应该从数据模型中填充。更多细节请参阅 [[yii\grid\DataColumn::getHeaderCellLabel]]。
|
||||
|
||||
#### 动作列
|
||||
|
||||
@ -308,10 +308,10 @@ echo GridView::widget([
|
||||
- [[yii\grid\ActionColumn::urlCreator|urlCreator]] 是使用指定的模型信息来创建一个按钮URL的回调函数。
|
||||
该回调的原型和 [[yii\grid\ActionColumn::createUrl()]] 是一样的。
|
||||
假如这个属性没有设置,按钮的URL将使用 [[yii\grid\ActionColumn::createUrl()]] 来创建。
|
||||
- [[yii\grid\ActionColumn::visibleButtons|visibleButtons]] is an array of visibility conditions for each button.
|
||||
The array keys are the button names (without curly brackets), and the values are the boolean true/false or the
|
||||
anonymous function. When the button name is not specified in this array it will be shown by default.
|
||||
The callbacks must use the following signature:
|
||||
- [[yii\grid\ActionColumn::visibleButtons|visibleButtons]] 是控制每个按钮可见性条件的数组。
|
||||
数组键是按钮名称 (没有大括号),值是布尔值 true/false 或匿名函数。
|
||||
如果在数组中没有指定按钮名称,将会按照默认的来显示。
|
||||
回调必须像如下这样来使用:
|
||||
|
||||
```php
|
||||
function ($model, $key, $index) {
|
||||
@ -319,7 +319,7 @@ echo GridView::widget([
|
||||
}
|
||||
```
|
||||
|
||||
Or you can pass a boolean value:
|
||||
或者你可以传递一个布尔值:
|
||||
|
||||
```php
|
||||
[
|
||||
@ -434,8 +434,8 @@ class PostSearch extends Post
|
||||
}
|
||||
```
|
||||
|
||||
> Tip: See [Query Builder](db-query-builder.md) and especially [Filter Conditions](db-query-builder.md#filter-conditions)
|
||||
> to learn how to build filtering query.
|
||||
> Tip: 请参阅 [Query Builder](db-query-builder.md) 尤其是 [Filter Conditions](db-query-builder.md#filter-conditions)
|
||||
> 去学习如何构建过滤查询。
|
||||
|
||||
你可以在控制器中使用如下方法为网格视图获取数据提供者:
|
||||
|
||||
@ -461,10 +461,10 @@ echo GridView::widget([
|
||||
]);
|
||||
```
|
||||
|
||||
### Separate filter form
|
||||
### 单独过滤表单
|
||||
|
||||
大多数时候使用GridView标头过滤器就足够了,但是如果你需要一个单独的过滤器表单,你也可以很轻松的去添加。您可以使用以下内容创建部分视图 `_search.php`:
|
||||
|
||||
Most of the time using GridView header filters is enough, but in case you need a separate filter form,
|
||||
you can easily add it as well. You can create partial view `_search.php` with the following contents:
|
||||
|
||||
```php
|
||||
<?php
|
||||
@ -496,18 +496,18 @@ use yii\widgets\ActiveForm;
|
||||
</div>
|
||||
```
|
||||
|
||||
and include it in `index.php` view like so:
|
||||
并将其包含在 `index.php` 视图中,如下所示:
|
||||
|
||||
```php
|
||||
<?= $this->render('_search', ['model' => $searchModel]) ?>
|
||||
```
|
||||
|
||||
> Note: if you use Gii to generate CRUD code, the separate filter form (`_search.php`) is generated by default,
|
||||
but is commented in `index.php` view. Uncomment it and it's ready to use!
|
||||
> Note: 如果使用 Gii 生成 CRUD 代码, 默认情况下会生成单独的过滤器表单(`_search.php`),
|
||||
但是在 `index.php` 视图中已经被注释了。取消注释就可以用了!
|
||||
|
||||
Separate filter form is useful when you need to filter by fields, that are not displayed in GridView
|
||||
or for special filtering conditions, like date range. For filtering by date range we can add non DB attributes
|
||||
`createdFrom` and `createdTo` to the search model:
|
||||
当您需要按字段过滤时,单独的过滤器表单很有用,这些字段不会在 GridView 中显示,也不适用于特殊筛选条件(如日期范围)。
|
||||
对于按日期范围过滤,
|
||||
我们可以将非 DB 属性 `createdFrom` 和 `createdTo` 添加到搜索模型:
|
||||
|
||||
```php
|
||||
class PostSearch extends Post
|
||||
@ -524,14 +524,14 @@ class PostSearch extends Post
|
||||
}
|
||||
```
|
||||
|
||||
Extend query conditions in the `search()` method like so:
|
||||
在 `search()` 扩展查询条件的方法如下:
|
||||
|
||||
```php
|
||||
$query->andFilterWhere(['>=', 'creation_date', $this->createdFrom])
|
||||
->andFilterWhere(['<=', 'creation_date', $this->createdTo]);
|
||||
```
|
||||
|
||||
And add the representative fields to the filter form:
|
||||
并将代表字段添加到过滤器表单:
|
||||
|
||||
```php
|
||||
<?= $form->field($model, 'creationFrom') ?>
|
||||
@ -734,11 +734,11 @@ echo GridView::widget([
|
||||
]);
|
||||
```
|
||||
|
||||
### Using GridView with Pjax
|
||||
### 在 GridView 使用 Pjax
|
||||
|
||||
The [[yii\widgets\Pjax|Pjax]] widget allows you to update a certain section of a
|
||||
page instead of reloading the entire page. You can use it to to update only the
|
||||
[[yii\grid\GridView|GridView]] content when using filters.
|
||||
[[yii\widgets\Pjax|Pjax]] 允许您更新页面的某个部分,
|
||||
而不是重新加载整个页面。
|
||||
使用过滤器时,可以使用它仅更新 [[yii\grid\GridView|GridView]] 内容。
|
||||
|
||||
```php
|
||||
use yii\widgets\Pjax;
|
||||
@ -753,16 +753,16 @@ Pjax::begin([
|
||||
Pjax::end();
|
||||
```
|
||||
|
||||
Pjax also works for the links inside the [[yii\widgets\Pjax|Pjax]] widget and
|
||||
for the links specified by [[yii\widgets\Pjax::$linkSelector|Pjax::$linkSelector]].
|
||||
But this might be a problem for the links of an [[yii\grid\ActionColumn|ActionColumn]].
|
||||
To prevent this, add the HTML attribute `data-pjax="0"` to the links when you edit
|
||||
the [[yii\grid\ActionColumn::$buttons|ActionColumn::$buttons]] property.
|
||||
Pjax 也适用于 [[yii\widgets\Pjax|Pjax]] 小部件之间的链接以及
|
||||
[[yii\widgets\Pjax::$linkSelector|Pjax::$linkSelector]] 指定的链接。
|
||||
但是这可能是 [[yii\grid\ActionColumn|ActionColumn]] 链接的问题。
|
||||
要防止这种情况,请在编辑
|
||||
[[yii\grid\ActionColumn::$buttons|ActionColumn::$buttons]] 属性时将 HTML 属性 `data-pjax="0"` 添加到链接中。
|
||||
|
||||
#### GridView/ListView with Pjax in Gii
|
||||
#### 在 Gii 中使用 Pjax 的 GridView/ListView
|
||||
|
||||
Since 2.0.5, the CRUD generator of [Gii](start-gii.md) has an option called
|
||||
`$enablePjax` that can be used via either web interface or command line.
|
||||
从 2.0.5 开始,[Gii](start-gii.md) 的 CRUD 生成器有一个 `$enablePjax` 选项,
|
||||
可以通过 web 界面或者命令行使用。
|
||||
|
||||
```php
|
||||
yii gii/crud --controllerClass="backend\\controllers\PostController" \
|
||||
@ -770,10 +770,10 @@ yii gii/crud --controllerClass="backend\\controllers\PostController" \
|
||||
--enablePjax=1
|
||||
```
|
||||
|
||||
Which generates a [[yii\widgets\Pjax|Pjax]] widget wrapping the
|
||||
[[yii\grid\GridView|GridView]] or [[yii\widgets\ListView|ListView]] widgets.
|
||||
这会生成一个由 [[yii\widgets\Pjax|Pjax]] 小部件包含的
|
||||
[[yii\grid\GridView|GridView]] 或者 [[yii\widgets\ListView|ListView]] 。
|
||||
|
||||
Further reading
|
||||
延伸阅读
|
||||
---------------
|
||||
|
||||
- [Rendering Data in Yii 2 with GridView and ListView](http://www.sitepoint.com/rendering-data-in-yii-2-with-gridview-and-listview/) by Arno Slatius.
|
||||
|
Reference in New Issue
Block a user