Yii2 从数据库内爆查询
Yii2 implode query from database
您好...
在我的站点控制器中,我有这段代码可以查询数据库中的 table 横幅。
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)],
]
]
]);
?>
这个网站已经完成,在我的本地主机上 100% 运行良好。
我将网站上传到实时服务器,它总是在视图代码中抛出错误。错误是:
内爆():传递的参数无效
A var_dump $image1 没有出现,因为它先给出了错误。
任何人都知道为什么它像魅力一样工作并在本地主机上工作的横幅中显示所有 3 个图像,但在实时服务器上它总是在 implode() 函数上给出此错误?
PHP 服务器中的版本设置为我在本地主机上开发的 5.5。
我试图将 $image1 2 和 3 vars 声明为数组但没有成功,对 vars 的 var_dump 总是显示类似于 array1[0] => bool (假)
我在过去的几个小时里一直试图解决这个问题,但没有成功。为了测试目的,我必须在一天结束时上线该网站。
非常感谢回答。
解决了,在弄清楚 implode 需要在实时服务器上有一个数组类型(在 localhost 中它不争论那个 ??!!)我们需要将索引 [0] 数组传递给 implode功能:
所以要关闭问题,请将行更改为以下形式:
$imagem1[] = $command->queryOne();
['image' => implode('', $imagem1[0])],
您好...
在我的站点控制器中,我有这段代码可以查询数据库中的 table 横幅。
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)],
]
]
]);
?>
这个网站已经完成,在我的本地主机上 100% 运行良好。
我将网站上传到实时服务器,它总是在视图代码中抛出错误。错误是: 内爆():传递的参数无效
A var_dump $image1 没有出现,因为它先给出了错误。
任何人都知道为什么它像魅力一样工作并在本地主机上工作的横幅中显示所有 3 个图像,但在实时服务器上它总是在 implode() 函数上给出此错误?
PHP 服务器中的版本设置为我在本地主机上开发的 5.5。
我试图将 $image1 2 和 3 vars 声明为数组但没有成功,对 vars 的 var_dump 总是显示类似于 array1[0] => bool (假)
我在过去的几个小时里一直试图解决这个问题,但没有成功。为了测试目的,我必须在一天结束时上线该网站。
非常感谢回答。
解决了,在弄清楚 implode 需要在实时服务器上有一个数组类型(在 localhost 中它不争论那个 ??!!)我们需要将索引 [0] 数组传递给 implode功能:
所以要关闭问题,请将行更改为以下形式:
$imagem1[] = $command->queryOne();
['image' => implode('', $imagem1[0])],