我对cakephp很新。
我创建了一个公司,一个用户模型和一个寄存器控制器。用户注册一家公司,公司可以拥有大量用户。
我遇到的问题是我可以使用以下方式插入新公司:
$this->query("INSERT INTO companies (name) VALUES('".$name."');");
此查询在公司模型中使用,该模型在公司表中插入公司名称并自动生成id主键,但此方法对于sql注入是开放的,并且违反蛋糕php约定。
我尝试了另一种方法,我将公司名称分配给公司模型的name参数并执行save()函数。
$this->name = $name;
$this->save();
但这样公司名称没有插入数据库中。运行调试后,我得到的是BEGIN和ROLLBACK函数。
我从模型中转储表和模式,验证是否存在连接问题,但没有。
提前感谢您的帮助。
答案 0 :(得分:0)
我在CakePHP方面也没有经验,但这就是我要做的事情。
遵循CakePHP约定可以执行以下操作:
在CompanyController中创建createCompany函数。删除registerController。
public function createCompany() {
if ($this -> request -> is('post')) {
$this -> Company -> create();
if ($this -> Company -> save($this -> request -> data)) {
$this -> Session -> setFlash(('Your company has been created.'));
return $this -> redirect(array('action' => 'index'));
}
$this -> Session -> setFlash(('Unable to create your company.'));
}
}
//You can add the company_founder_id in the view if such a field exists.
这可能是相关的:CakePHP saving HABTM data