2016-09-26 2 views
0

они не могут вернуть результат запроса в виде целого числа, потому что я хочу сохранить 'id' запроса.yii2 query database return integer

Мой контроллер

$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

Что ты делаешь? Выполнение $ query, сохранение $ model и использование $ query –

ответ

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