diff --git a/docs/guide-zh-CN/concept-configurations.md b/docs/guide-zh-CN/concept-configurations.md index ee6472cbb8..e371035412 100644 --- a/docs/guide-zh-CN/concept-configurations.md +++ b/docs/guide-zh-CN/concept-configurations.md @@ -135,8 +135,8 @@ $config = [ 更多关于应用 `components` 属性配置的信息可以查阅[应用](structure-applications.md) 以及[服务定位器](concept-service-locator.md)章节。 -Since version 2.0.11, the application configuration supports [Dependency Injection Container](concept-di-container.md) -configuration using `container` property. For example: +自版本 2.0.11 开始,系统配置支持使用 `container` 属性来配置[依赖注入容器](concept-di-container.md) +例如: ```php $config = [ @@ -148,15 +148,15 @@ $config = [ 'yii\widgets\LinkPager' => ['maxButtonCount' => 5] ], 'singletons' => [ - // Dependency Injection Container singletons configuration + // 依赖注入容器单例配置 ] ] ]; ``` -To know more about the possible values of `definitions` and `singletons` configuration arrays and real-life examples, -please read [Advanced Practical Usage](concept-di-container.md#advanced-practical-usage) subsection of the -[Dependency Injection Container](concept-di-container.md) article. +请参考 [依赖注入容器](concept-di-container.md) 下面的 [高级应用实例](concept-di-container.md#advanced-practical-usage) +获取更多 `definitions` 和 `singletons` 配置项和实际使用的例子。 + ### 小部件的配置 diff --git a/docs/guide-zh-CN/input-multiple-models.md b/docs/guide-zh-CN/input-multiple-models.md index 631b09f617..02e7b9e251 100644 --- a/docs/guide-zh-CN/input-multiple-models.md +++ b/docs/guide-zh-CN/input-multiple-models.md @@ -1,16 +1,16 @@ 多模型的复合表单 ================================== -When dealing with some complex data, it is possible that you may need to use multiple different models to collect -the user input. For example, assuming the user login information is stored in the `user` table while the user profile -information is stored in the `profile` table, you may want to collect the input data about a user through a `User` model -and a `Profile` model. With the Yii model and form support, you can solve this problem in a way that is not much -different from handling a single model. +当需要处理复杂数据,很可能你需要使用多个不同的模型来收集用户提交的数据。 +举例来说,假设用户登录信息保存在 `user` 表,但是用户基本信息保存在 `profile` 表, +你可能需要同时使用 `User` 模型和 `Profile` 模型来获取用户登录信息和基本信息。 +使用 Yii 提供的模型和表单支持,解决这样的问题和处理单一模型并不会有太大的区别。 -In the following, we will show how you can create a form that would allow you to collect data for both `User` and `Profile` -models. -First, the controller action for collecting the user and profile data can be written as follows, +下面,我们将为你展示怎样创建一个表单并同时处理 `User` 和 `Profile` 这两个模型。 + + +首先,控制器中收集用户提交数据的动作(action)可以按照下面写的这样, ```php namespace app\controllers; @@ -28,13 +28,13 @@ class UserController extends Controller { $user = User::findOne($id); if (!$user) { - throw new NotFoundHttpException("The user was not found."); + throw new NotFoundHttpException("没有找到用户登录信息。"); } $profile = Profile::findOne($user->profile_id); if (!$profile) { - throw new NotFoundHttpException("The user has no profile."); + throw new NotFoundHttpException("没有找到用户基本信息。"); } $user->scenario = 'update'; @@ -58,11 +58,11 @@ class UserController extends Controller } ``` -In the `update` action, we first load the `$user` and `$profile` models to be updated from the database. We then call -[[yii\base\Model::load()]] to populate these two models with the user input. If loading is successful, we will validate -the two models and then save them — please note that we use `save(false)` to skip over validations inside the models -as the user input data have already been validated. If loading is not successful, we will render the `update` view which -has the following content: +在 `update` 动作中,我们首先从数据库中获取需要更新的 `$user` 和 `$profile` 这两个模型。 +我们可以调用 [[yii\base\Model::load()]] 方法把用户提交数据填充到两个模型中。 +如果加载成功,验证两个表单并保存 — 请注意我们使用了 `save(false)` 方法用来忽略内部保存时的二次验证, +因为用户输入的数据已经手动验证过了。 +如果填充数据失败,直接显示下面的 `update` 视图内容: ```php field($profile, 'website') ?> - 'btn btn-primary']) ?> + 'btn btn-primary']) ?> ``` -As you can see, in the `update` view you would render input fields using two models `$user` and `$profile`. +你可以看到,在 `update` 视图中,我们同时显示了两个模型 `$user` 和 `$profile` 的属性的输入栏。