他们无法将查询结果作为整数返回,因为我想保存' 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",以对应于数据库中整数的字符串形式恢复。
答案 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();