cakephp从单个列中的多个值中提取

cakephp从单个列中的多个值中提取,php,mysql,cakephp,Php,Mysql,Cakephp,我正在使用CakePHP2.3构建一个带有餐厅数据库的应用程序。现在,我前面的人已经将餐厅详细信息保存在一个名为“locations”的表格中,该表格中有一行菜,在一列中有多个值,比如一个位置可以有中国菜、印度菜、韩国菜等 如果我使用post获取数据,并使用如下精确值从列中检索: $restaurant_cuisine = $this->params['url']['restaurant_cuisine']; $data = $this->Location->findAl

我正在使用CakePHP2.3构建一个带有餐厅数据库的应用程序。现在,我前面的人已经将餐厅详细信息保存在一个名为“locations”的表格中,该表格中有一行菜,在一列中有多个值,比如一个位置可以有中国菜、印度菜、韩国菜等

如果我使用post获取数据,并使用如下精确值从列中检索:

$restaurant_cuisine = $this->params['url']['restaurant_cuisine'];   
$data = $this->Location->findAllByCuisine($restaurant_cuisine);
然后,只有在完全匹配的情况下,它才会显示值……例如:如果我发布“北印度、中国、穆格莱”,那么它会逐字匹配。 我想要一个查询,在那里我可以搜索中国和所有有中国特色的餐馆,即使他们有其他的菜系


请帮忙

不能使用magic find type,因为它们不允许类似的条件。必须使用完整语法:

$data = $this->Location->find(
    'all', 
     array(
         'conditions' => array('Location.cuisine LIKE' => "%$restaurant_cuisine%")
     ));

你好这很有魅力:)不过还有一件事,如果这个专栏有像“北印度、中国、穆格利”这样的价值存储,我希望非相邻的菜系也可以搜索……比如如果我在发布的数据中收到“北印度、穆格利”,即使中间有中国人,它也应该显示出来。基本上,是否有一个命令可以从列中的字符串中选择多个部分值?不,(我的意思是,不那么容易)。您最好创建一个名为couisines的新表和一个名为Couisine的模型,并将其与位置(Location HABTM Couries,反之亦然)联系起来