2016-09-26 89 views
0

它們無法將查詢結果作爲整數返回,因爲我想保存查詢的'id'。yii2查詢數據庫返回整數

我的控制器

$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」,回收的形式對應整數數據庫中的字符串。

+0

你能提供更多關於這方面的信息嗎?我不太明白。查詢返回一個整數在哪裏?在save()後?你想在這裏做什麼? –

+0

你在做什麼?執行$查詢,保存$模型和使用$查詢 –

回答

1

如果你想單值,你應該使用標量(),而不是一個()

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

標量()返回選擇的第一列。而一個()返回第一個模型(查詢有關第一行)對象

,或者如果你需要的型號

$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(); 
+0

我不想返回列,但它的整數值,我很抱歉,但我是一個初學者。 – Saba

+0

@saba ..第一列..(在你的情況下唯一的一列)恰好是id_citta的整數..(別名是你存儲在citta.citta_id中的值) – scaisEdge

+0

非常感謝 – Saba

相關問題