我只是篝火/ ci的新手。我正在尝试通过链接 bf/ci 模型方法来重新创建以下 sql 语句:
SELECT prod_cat.cat_id,
prod_cat.prod_id,
prod.enabled,
prod.name,
prod.prod_id,
FROM prod_cat, prod
WHERE prod.is_enabled = 1
AND prod_cat.cat_id =15
AND prod_cat.prod_id = prod.prod_id
ORDER BY prod.name DESC
我有一个 bf / ci prod_model 和一个 prod_cat_model。
我知道我可以执行以下操作来获取与 cat_id 15 匹配的所有产品,例如:
$this->load->model('cat/prod_cat_model');
$records = $this->prod_cat_model->find_all_by('cat_id' => $cid);
同样,我计划使用产品表上的 find_all_by 来限制活动/启用的记录,如下所示:
$this->prod_model->find_all_by('enabled', 1);
首先,作为测试,我正在考虑通过将数组传递给 prod_model 来尝试组合这两个代码片段,如下所示:
public function productsincategory($cid)
{
$this->load->model('cat/prod_cat_model');
$criteria = array(
'enabled' => 1,
'prod_id' => $this->prod_cat_model->find_all_by('cat_id', $cid)
);
$records = $this->prod_model->find_all_by($criteria) ;
}
我收到一条错误消息:
'where 子句'中的未知列'Array'
SELECT * FROM (
prod
) WHEREenabled
= 1 ANDprod_id
= 数组
这是有道理的......但我不知道如何解决它,所以它就像“select * from prod where enabled = 1 and prod_id in (prod ids from prod_cat table) 我也试过使用“where_in( )”,但篝火似乎无法识别。谢谢。