无法访问 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;
}
我有以下查询:
$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;
}