无法访问 Yii 1.1 queryAll() 结果中对象的 属性

Cannot access property of an object in Yii 1.1 queryAll() result

我有以下查询:

$transactionIds = \Yii::app()->db->createCommand()                                                                                                                              
    ->select("transactionId")                                                                                                                                                   
    ->from("batch_lab_transactions")                                                                                                                                            
    ->where("batchId = :batchId", ["batchId" => $batch->id])                                                                                                                    
    ->queryAll(); 

其中显示,根据\Yii::log(json_encode($transactionIds));

[{"transactionId":"658000024"},{"transactionId":"658000025"}]

我正在尝试访问 transactionId 密钥,但我一直收到错误消息说我正在尝试访问非对象。这是我使用的循环:

foreach ($transactionIds as $transaction) {
    $transaction->transactionId // Error
}

您将使用此代码获得数组数组。

所以你可以使用$transaction['transactionId']

在这种情况下,使用 queryColumn() 而不是 queryAll() 的更好方法是:

$transactionIds = \Yii::app()->db->createCommand()                                                                                                                              
    ->select("transactionId")                                                                                                                                                   
    ->from("batch_lab_transactions")                                                                                                                                            
    ->where("batchId = :batchId", ["batchId" => $batch->id])                                                                                                                    
    ->queryColumn(); // <-- change here

foreach ($transactionIds as $transactionId) {
    echo $transactionId;
}