【发布时间】:2015-05-16 20:29:58
【问题描述】:
我对 cakephp 很陌生。
我创建了一个公司、一个用户模型和一个注册控制器。一个用户注册一个公司,该公司可以有很多用户。
我遇到的问题是我可以通过以下方式插入一家新公司:
$this->query("INSERT INTO companies (name) VALUES('".$name."');");
此查询用于公司模型中,该模型将公司名称插入公司表中并自动生成 id 主键,但此方法对 sql 注入开放,违反了蛋糕 php 约定。
我尝试了另一种方法,将公司名称分配给公司模型的名称参数并执行 save() 函数。
$this->name = $name;
$this->save();
但是这样公司名称不会被插入到数据库中。运行调试后,我得到的只是 BEGIN 和 ROLLBACK 函数。
我也从模型中转储了表和架构,验证是否存在连接问题,但没有。
提前感谢您的帮助。
【问题讨论】:
-
你应该使用正确的 cakephp 命名约定,例如公司信息总是从公司模型中保存
-
既然您是 Cakephp 新手,请帮自己一个巨大的忙,阅读并使用 Cakephp 的代码生成能力:bake functionality。 (对于 v2.x,v.3 也有此功能)。 一旦 Cakephp 构建了初始模型、视图和控制器,您就可以开始了解与您的数据相关的代码是如何工作的模型。