Php 在Yii框架中将$\u POST中包含的数组转换为MySql查询
我试图用Yii框架解决我的问题。我有一个返回$\u帖子的视图:Php 在Yii框架中将$\u POST中包含的数组转换为MySql查询,php,mysql,arrays,yii,Php,Mysql,Arrays,Yii,我试图用Yii框架解决我的问题。我有一个返回$\u帖子的视图: Array ( [Questions] => Array ( [countries] => Array ( [0] => 1 ) [categories] => 1 ) [yt0] => Search ) 类别等信息是单个id,其中国家是一个数组 现在,我的问题是,tu如何正确使用Yii模型查询生成器,以便从一个数组中包含多个国家/地区的语句。 某物 比如: 当$_POST['Questions'][
Array ( [Questions] => Array ( [countries] => Array ( [0] => 1 ) [categories] => 1 ) [yt0] => Search )
类别等信息是单个id,其中国家是一个数组
现在,我的问题是,tu如何正确使用Yii模型查询生成器,以便从一个数组中包含多个国家/地区的语句。
某物
比如:
当$_POST['Questions']['countries']只返回一个id时,我使用了以下方法:
$model = Questions::model()->with(
array( 'countries' => array (
'select' => 'name',
'condition' => 'countries.id=:cou_id', // How to do for array?
'params' => array (':cou_id' => $_POST["Questions"]["countries"]) // How to do for array ?
)
)
)->findAll(array ('select' => 'question'));
如何为多个国家做?如何在Yii:model查询生成器中包含foreach循环?!请帮忙 最终,条件的
条件
属性需要包含一个使用MySql函数的片段,例如(x,y,z,…)中的countries.id
。您可以手动执行此操作,但Yii提供了方便的方法来帮助:
以下代码起作用:
$criteria = new CDbCriteria();
$criteria->with = array('countries');
$criteria->addInCondition('countries.id' , $_POST['Questions']['countries']);
$model = Questions::model()->findAll($criteria);
嘿,你很接近,但不准确。我已经解决了我的问题,试图把你说的话和网上的一些信息结合起来。
$countryCriteria = new CDbCriteria();
$countryCriteria->select = 'name';
$countryCriteria->addInCondition('id', $_POST["Questions"]["countries"]);
$model = Questions::model()->with(array('countries' => $countryCriteria))
->findAll(array('select' => 'question'));
$criteria = new CDbCriteria();
$criteria->with = array('countries');
$criteria->addInCondition('countries.id' , $_POST['Questions']['countries']);
$model = Questions::model()->findAll($criteria);