yii2查询数据库返回整数

时间:2016-09-26 17:22:56

标签: mysql yii2

他们无法将查询结果作为整数返回,因为我想保存' id'查询。

我的控制器



$query = (new \yii\db\Query())
         ->select(['id_citta'])
         ->from('citta')
         ->where(['nome_citta' => 'London'])->one();


         $model->save();
         $viaggio_partenza->id_viaggio = $model->id_viaggio;
         $viaggio_partenza->citta_partenza = $query;
         $viaggio_partenza->save();




有什么建议吗?



public function actionOffri()
   {

    $model = new Viaggi;
    $viaggio_partenza = new ViaggiPartenza;

if($model->load(Yii::$app->request->post()) && $model->validate() && $viaggio_partenza->load(Yii::$app->request->post())){


$query = (new \yii\db\Query())
         ->select(['id_citta'])
         ->from('citta')
         ->where(['nome_citta' => 'Torino'])->one();


         $model->save();
         $viaggio_partenza->id_viaggio = $model->id_viaggio;
         $viaggio_partenza->citta_partenza = $query;
         $viaggio_partenza->save();


}else {....}




我想检索" id_citta"使用查询并将其保存为" citta_partenza",以对应于数据库中整数的字符串形式恢复。

1 个答案:

答案 0 :(得分:2)

如果你想要单个值,你应该使用标量()而不是一个()

$query = (new \yii\db\Query())
     ->select(['id_citta'])
     ->from('citta')
     ->where(['nome_citta' => 'London'])->scalar();

Scalar()返回select的第一列..而one()返回查询的第一个模型(与第一行相关的对象)

或者如果您需要模型

$query = (new \yii\db\Query())
     ->select(['id_citta'])
     ->from('citta')
     ->where(['nome_citta' => 'London'])->one();

然后参考属性

   $model->save();
     $viaggio_partenza->id_viaggio = $model->id_viaggio;
     $viaggio_partenza->citta_partenza = $query->id_citta;
     $viaggio_partenza->save();