有人可以让我知道,如果设置post params可以直接设置为模型属性,那么load方法的实际用法是什么?由于模型加载()的使用
$model->load(Yii::$app->request->post());
VS
$model->attributes = Yii::$app->request->post();
有人可以让我知道,如果设置post params可以直接设置为模型属性,那么load方法的实际用法是什么?由于模型加载()的使用
$model->load(Yii::$app->request->post());
VS
$model->attributes = Yii::$app->request->post();
load()
将只分配已经得到在当前情况下分配给他们的验证规则,以便您能够验证他们的属性。
不知道你是否曾经使用过此还是没有去..。但它几乎在这里清楚:www.yiiframework.com/doc-2.0/yii-base-model.html#load()-detail
正如你可以很容易地看到在http://www.yiiframework.com/doc-2.0/yii-base-model.html#load()-detail
负载使用输入数据填充模型。除非给出$ formName参数 ,否则load()将从模型的formName()方法(您可能会覆盖)获取'FormName' 。
正在填充的数据受setAttributes()的安全检查。
也http://www.yiiframework.com/doc-2.0/guide-structure-models.html
看到负荷的主要目的($数据,$窗体名称)是返回布尔值true,如果预期的$表格名称中找到$数据。因此,你可以跳过以下内容:
if (isset($_POST['FormName'])) {
$model->attributes = $_POST['FormName'];
do_something_here;
}
与
$post = Yii::$app->request->post();
if ($model->load($post)) {
do_something_here;
}
它更多的,不同种类的车型有趣:
$post = Yii::$app->request->post();
if ($modelA->load($post) && $modelB->load($post) && $modelC->load($post)) {
do_something_if_all_models_are_loaded;
}