Yii2内爆数据库查询

时间:2015-02-04 15:00:37

标签: arrays arguments yii2 implode

问候...

在我的sitecontroller中,我有这个代码来查询数据库中的表格横幅。

public function actionIndex()
{
    $model = new Contacto();
    $query = new Query;
    $query->select('foto')
    ->from('banner')
    ->where('id=1');
    $command = $query->createCommand();
    $imagem1 = $command->queryOne();

    $model = new Contacto();
    $query = new Query;
    $query->select('foto')
    ->from('banner')
    ->where('id=2');
    $command = $query->createCommand();
    $imagem2 = $command->queryOne();

    $model = new Contacto();
    $query = new Query;
    $query->select('foto')
    ->from('banner')
    ->where('id=3');
    $command = $query->createCommand();
    $imagem3 = $command->queryOne();

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(Url::toRoute(['site/sucessocontacto']));
    } else {
        return $this->render('index', [
            'model' => $model, 'imagem1' => $imagem1, 'imagem2' => $imagem2, 'imagem3' => $imagem3
        ]);
    }
}

在我看来,我有这段代码:

<?=

    Supersized::widget([
        'theme' => Supersized::THEME_SLIDESHOW,
        'returnType' => Supersized::RETURN_CONTROL,
        'options' => [
            'slide_interval' => 2000,
            'transition' => 1,
            'transition_speed' => 1400,
            'slide_links' => 'blank',
            'random' => 0,
            'slides' => [
                ['image' => implode('', $imagem1)],
                ['image' => implode('', $imagem2)],
                ['image' => implode('', $imagem3)],
            ]
        ]
    ]);
    ?>

此网站已完成,并且在我的本地主机中效果良好。

我将网站上传到实时服务器,它总是在视图代码中抛出错误。错误是: implode():传递的参数无效

var_dump $ image1不会出现,因为它首先提供错误。

任何人都知道为什么它像魅力一样工作并在横幅上显示所有3个图像在localhost上,但在实时服务器上它总是在implode()函数上给出这个错误?

服务器中的PHP版本设置为我在localhost中开发的版本。

我试图将$ image1 2和3 vars声明为数组但是没有工作,vars的var_dump总是显示类似于array1 [0] =&gt;布尔(假)

我试图在最后几个小时解决这个问题,但没有成功。我必须在一天结束时使用该网站进行测试。

非常感谢答案。

1 个答案:

答案 0 :(得分:-1)

解决了,在弄清楚implode需要在实时服务器上有一个数组类型(在localhost中它没有争论那个?? !!)我们需要将index [0]数组传递给implode函数:

因此,要关闭此问题,请将行更改为以下形式:

 $imagem1[] = $command->queryOne();


['image' => implode('', $imagem1[0])],