cakephp 2.6从数据库中检索数据

时间:2015-07-31 16:41:37

标签: php cakephp

这是我在cakephp控制器中的函数编辑:

public function edit($id = null) { 
if ($this->request->is('get')) {
            $this->request->data = $this->Topic->findById($id);
        }
...

第一个问题是传递给函数的参数id是string类型而不是整数。 其次,在数据库中有一个id = 14的主题,这两个代码都检索到相同的结果,我不明白为什么:

http://localhost/cakephp1/topics/edit/14
http://localhost/cakephp1/topics/edit/14anyCharactersHere

1 个答案:

答案 0 :(得分:0)

URL传递的参数当然是类型字符串,因为URL是一个字符串。

假设数据库中的id列是整数,Cake会将传递给findById()的参数转换为整数:(int)"14"(int)"14anyCharactersHere"都会导致{{1} }。因此,您问题中的两个网址都会导致从数据库中提取相同的数据。

如果您想确保14仅包含整数使用ctype_digit(): -

$id