首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >模型load()的用法

模型load()的用法
EN

Stack Overflow用户
提问于 2017-04-01 22:42:01
回答 4查看 35关注 0票数 0

有人能帮我注册吗?如果设置post参数可以直接设置到models属性,那么load方法的实际用途是什么?谢谢

$model->load(Yii::$app->request->post());

vs

$model->attributes = Yii::$app->request->post();

EN

回答 4

Stack Overflow用户

发布于 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

票数 1
EN

Stack Overflow用户

发布于 2017-04-02 14:01:39

load( $data,$formName)的主要目的是在$data中找到预期的$formName时返回布尔值true。因此,您可以绕过以下内容:

代码语言:javascript
运行
复制
if (isset($_POST['FormName'])) {
    $model->attributes = $_POST['FormName'];
    do_something_here;
}

使用

代码语言:javascript
运行
复制
$post = Yii::$app->request->post();
if ($model->load($post)) {
    do_something_here;
}

对于更多不同类型的模型,这是很有趣的:

代码语言:javascript
运行
复制
$post = Yii::$app->request->post();
if ($modelA->load($post) && $modelB->load($post) && $modelC->load($post)) {
    do_something_if_all_models_are_loaded;
}
票数 1
EN

Stack Overflow用户

发布于 2017-04-01 22:46:31

load()将只分配在当前场景中已分配了验证规则的属性,以便您能够对其进行验证。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43158229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档