Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在yii php框架中创建多个数据库关系条件?_Php_Mysql_Yii - Fatal编程技术网

如何在yii php框架中创建多个数据库关系条件?

如何在yii php框架中创建多个数据库关系条件?,php,mysql,yii,Php,Mysql,Yii,我有两个数据库,电视节目表和副节目记录。 在vp_记录表设置关系中: 'tv_schedule' => array(self::BELONGS_TO, 'Schedule', 'sch_id'), 当我尝试获取相关记录时,它对我很有用: Record::model()->findByPk(2)->tv_schedule 但是,当我使用标准形成数据提供程序时,我有一个错误: SQLSTATE[42S02]:找不到基表或视图:1146表“video\u proc

我有两个数据库,电视节目表和副节目记录。 在vp_记录表设置关系中:

    'tv_schedule' => array(self::BELONGS_TO, 'Schedule', 'sch_id'),
当我尝试获取相关记录时,它对我很有用:

    Record::model()->findByPk(2)->tv_schedule
但是,当我使用标准形成数据提供程序时,我有一个错误:

SQLSTATE[42S02]:找不到基表或视图:1146表“video\u processing.tv\u schedule”不存在。执行的SQL语句是:从
video\u processing
vp\u record
t
左外连接
tv\u schedule
tv\u scheduleON(
t
sch\u id
=
tv\u schedule
),其中(t.tc\u id=22)

但在记录模型和调度配置方法CDbGetConnection模型中:

 public function getDbConnection()
{
    $db = Yii::app()->getComponent('video_processing');

    if ($db instanceof CDbConnection)
    {
        return $db;
    }
    else
        throw new CDbException(Yii::t('yii', 'Active Record requires a "video_processing" CDbConnection application component.'));
}
附表:

    public function getDbConnection() 
    {
            $db=Yii::app()->getComponent('iptv_new');

            if($db instanceof CDbConnection)
            {
                    return $db;
            }
            else 
                    throw new CDbException(Yii::t('yii','Active Record requires a "iptv_new" CDbConnection application component.'));
    }

这里出了什么问题?

这不受支持,因为Yii将尽可能尝试
JOIN
查询。您不能跨不同的数据库联接帐户。但在yii工作中查询两个或更多数据库<代码>视频处理
vp\u录制
iptv\u新建
时间表
。但我需要从CDbConnection类中获取数据库名称以进行直接sql查询…在api中也找不到这样的数据库名称。。。当我指定完整的tablename时,一切都在工作。。
    public function getDbConnection() 
    {
            $db=Yii::app()->getComponent('iptv_new');

            if($db instanceof CDbConnection)
            {
                    return $db;
            }
            else 
                    throw new CDbException(Yii::t('yii','Active Record requires a "iptv_new" CDbConnection application component.'));
    }