有人能帮我注册吗?如果设置post参数可以直接设置到models属性,那么load方法的实际用途是什么?谢谢
$model->load(Yii::$app->request->post());
vs
$model->attributes = Yii::$app->request->post();
发布于 2017-04-01 23:04:01
正如您在http://www.yiiframework.com/doc-2.0/yii-base-model.html#load()-detail中很容易看到的那样
load使用输入数据填充模型。load()从模型的formName()方法(您可以覆盖该方法)中获取'FormName‘,除非给定了$formName参数。
要填充的数据要经过setAttributes()的安全检查。
另请参阅http://www.yiiframework.com/doc-2.0/guide-structure-models.html
发布于 2017-04-02 14:01:39
load( $data,$formName)的主要目的是在$data中找到预期的$formName时返回布尔值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;
}
发布于 2017-04-01 22:46:31
load()
将只分配在当前场景中已分配了验证规则的属性,以便您能够对其进行验证。
https://stackoverflow.com/questions/43158229
复制相似问题