2019-06-04 09:28:38 1644次浏览 2条回答 0 悬赏 20 金钱

我创建了一个对应数据表 user 的模型:

class UserModel extends ActiveRecord

当我通过表单获取到对应的数据:

$model = new UserModel();
$model->load(yii::$app->request->post());
$model->validata();

然后我想要把获取到的数据直接存入数据库,我想请教下是否可以直接调用 save()

$model->save();

或者只能先对各个项目分别赋值然后保存???

$model->name = '';
$model->age = '';
$model->sex = '';

$model->save();

谢谢。

最佳答案

  • 刘师傅 发布于 2019-06-04 09:41 举报

    可以,而且我还要说的是,在填充数据(load)之后完全可以直接save,因为save默认包含了validate。
    完成用模型保存入库之前肯定要赋值,至于用load还是直接一个个赋值,都没有问题,它们俩的区别,会引出一个很大的概念:场景。
    多说一句:其实这些load,validate,insert等都在文档中有的,每个方法完成了啥功能,从表单到入库各自扮演了什么角色,希望你看一遍文档整体了解下,再依次测试,不断试错从了解到掌握。
    既然首先碰到了表单提交到保存入库,那么你就从这里看起吧:

    https://www.yiichina.com/doc/guide/2.0/structure-models

    2 条回复
    回复于 2019-06-04 09:43 回复

    谢谢你的建议。。。

    回复于 2019-06-04 10:02 回复

    这种答案才是我们需要的 赞

您需要登录后才可以回答。登录 | 立即注册
sk811229
经理

sk811229

注册时间:2018-05-23
最后登录:2022-10-06
在线时长:16小时47分
  • 粉丝0
  • 金钱770
  • 威望10
  • 积分1030

热门问题