我是CakePHP的新手并坚持这种情况:
我正在开发一个测试系统,我有以下三个表:类别,子类别,测试
当我创建测试时,我将category_id
,subcategory_id
与其他数据存储在Test表中
现在在TestsController
,我想读取记录的数量&查询匹配的行
我希望执行类似这些的查询:
查询1
select count(*) from Test where user_id='$user_id' and category_id=$category_id and subcategory_id=$subcategory_id
查询2
select
a.test_id,
a.test_name,
a.user_id,
a.test_type,
a.create_date,
a.create_time,
a.category_id,
a.subcategory_id,
a.randomize,
a.test_password
from Test a, Category b, SubCategory c
where user_id='$user_id' and
a.category_id=$category_id and
a.subcategory_id=$subcategory_id and
a.category_id=b.category_id and
a.subcategory_id=c.subcategory_id
现在,我不想(我实际上不知道)使用$ hasMany,$ belongsTo等。
我只想在Controller&中执行这些查询。将数据传递给视图
注意:在所有简单的情况下,我都使用了CakePHP编码风格
我想知道,在执行查询2 后如何获取行数组 是否可以直接执行此类查询(如mysql_query)
答案 0 :(得分:1)
您可以在测试模型中创建一个函数并访问查询,如:
class TestModel extends Model {
..
public function getQueryData($user_id, $cat_id, $subcat_id) {
return $this->query("SELECT a.test_id, a.test_name ..... ;");
}
}
在测试控制器中,你可以这样做:
$this->loadModel("Test");
$result = $this->Test->getQueryData($user_id, $cat_id, $subcat_id);