【发布时间】:2016-03-02 23:10:57
【问题描述】:
我在访问 Yii2 框架中的 ActiveRecord 模型的 id 时遇到问题。当我保存刚刚创建的模型时,我无法获取新对象的 id 字段。
$house = new House;
$house->save();
$hid = $house->id;
$hid 值为空字符串''。
问题是我正在创建新模型,以便在创建数据库行时将新 ID 传递给处理文件移动的线程进程。线程启动,在 json 切片和数组填充后,第一次插入在 sql 条件(where)语句上失败。
我研究了很多答案,他们指出了几个缺陷:
- pk 的分配 - 我没有分配新的模型 id 字段(db 处理 pk 自动增量),我通过 json 接收 $_post 正文内容(json 有许多字段不能批量分配到主模型中,所以我处理在 $attibutes 插入之前对 json 数据进行切片)。
- 模型规则中的 pk - 我在模型规则数组中没有 id 字段。
- ActiveRecord 类中的错误 - 我不想破解框架的基类。
稍后在代码中我计划通过关系链接模型,但我认为由于这个错误而失败,所以我还使用 $hid 值来填充相关模型中的外键字段。
帮助。请。
【问题讨论】:
-
save()是否返回true?之后尝试print_r($house->errors);看看是否验证失败。