我是yii的新手。我的问题是,我有一个阵列生成族古代码,它包含我需要显示详细信息的所有ID。如何获得数据。有人帮我帮助我 我尝试过


 $no=1432201;
 $mod = Event::model()->findByAttributes(array('id' => $no));<br>
.

但不起作用。空白字段显示。

有帮助吗?

解决方案

最好做addincriteria wiith cdbcriteria或简单的createCommand,但之前请在phpmyadmin / navices / mysql工作台等上检查您的查询(是返回结果是否返回?)

$homeTeamIds=['1','2','3','4'];
$criteria = new CDbCriteria;
$criteria->addInCondition('id',$homeTeamIds,'OR'); //matching any of your homeTeadIds 
$result = Event::model()->findAll($criteria);
.

$ids = implode(', ', $homeTeamIds);
$sql = "SELECT * FROM event WHERE id IN ($ids)"   // like where id IN(1,2,3,4)
$result = Yii::app()->db->createCommand($sql)->queryAll();
.

其他提示

如果将ID设置为DB中的主键,请不要使用FindByAttributes。

示例:

$mod = Event::model()->findbyPk($no);
.

您可以使用 cdbcriteria 's addincondition()方法要查找包含数组中的值的所有行,例如类似的东西应该工作(未测试):

$hometeamid = array(
    '1432201',
    '1432208',
    // ... etc... all the id's you want to show
);
$criteria = new CDbCriteria;
$criteria->addInCondition('id',$hometeamid,'OR');
$mod = Event::model()->findAll($criteria);
.

甚至有一个使用addincondition在cdbcriteria的顶部参考页面的示例: http:// www.yiiframework.com/doc/api/1.1/cdbcriteria

首先将您的数组进入逗号分隔的字符串,该字符串用作SQL查询中的条件值

$idString = implode(', ', $hometeamid);
. 然后在SQL查询中将该字符串中的字符串放置在SQL查询中。

$sql = "SELECT *
           FROM event
         WHERE id IN ($idString)"

$mod = Yii::app()->db->createCommand($sql)->queryAll();
.

执行IN方法后,您将收到相关行作为结果数组

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top