CakePHP查找具有相关模型条件的列表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了CakePHP查找具有相关模型条件的列表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1843字,纯文字阅读大概需要3分钟。
内容图文
![CakePHP查找具有相关模型条件的列表](/upload/InfoBanner/zyjiaocheng/814/4e4e07b35a814828924d048c20c8a835.jpg)
我正在尝试获取ID列表(la find(‘list’)),但无法弄清楚如何使用相关的模型条件.
我的协会是:
产品hasAndBelongsToMany类别
产品属于制造商
我想查找类别ID列表中的产品ID列表,并且具有某个制造商seo_url.我已经尝试了大量的包含条件,引用其他模型的条件,甚至尝试使用find(‘all’)来查看我的条件是否可行,但无法获得任何结果.
我设法使用Product-> query()得到一个,但它不是列表的格式.我可以遍历数组并获取ID或其他任何内容,但感觉非常糟糕.我想确保Cake仍然对我的查询进行所有安全检查,以及其他任何自动化操作.这是我工作的查询:
$all_results = $return['Category']['all_results'] = $this->Product->query('
SELECT `Product`.`id`
FROM `categories_products` as `CategoriesProduct`
JOIN `products` as `Product` ON (`CategoriesProduct`.`product_id` = `Product`.`id`)
JOIN `manufacturers` as `Manufacturer` ON (`Product`.`manufacturer_id` = `Manufacturer`.`id` AND `Manufacturer`.`seo_url` = \''.$manufacturer.'\')
WHERE `CategoriesProduct`.`category_id` IN ('.implode(',', $search_categories).')
');
这回来了
[all_results] => Array
(
[0] => Array
(
[Product] => Array
(
[id] => 101787
)
)
[1] => Array
(
[Product] => Array
(
[id] => 100781
)
)
[2] => Array
(
[Product] => Array
(
[id] => 101887
)
)
[3] => Array
(
[Product] => Array
(
[id] => 101888
)
)
)
注意:$search_categories是类别ID的列表(即:数组(12,42,24,5))
解决方法:
您想要的结果的问题是,如果您在相关模型上使用条件,Cake将不会返回剥离结果数组.
发生这种情况是因为Cake只会在您的相关模型上使用这些条件,并在相关模型的条件为真的情况下返回结果.
如果您想要获得仅具有特定类别的产品,则需要通过类别模型进行查询,因为这样您就可以使用产品上的条件.这看起来像这样:
$this->Category->find('all', array('conditions' => array('Category.id' => 2));
这将只返回所需类别及其相关产品.
但是,如果您需要列表,这不是很令人满意,因为您必须手动执行转换.
我宁愿看一下Linkable Plugin,它应该能够准确地为您提供所需的功能,因为它像您在查询中一样使用连接扩展了Cake.这样就可以在相关模型上获得具有条件的结果.
内容总结
以上是互联网集市为您收集整理的CakePHP查找具有相关模型条件的列表全部内容,希望文章能够帮你解决CakePHP查找具有相关模型条件的列表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。