Yii2 Query:访问查询返回的对象中的数组元素

时间:2016-04-27 06:59:46

标签: php arrays object yii2 yii2-advanced-app

我在yii2中撰写此查询 -

$senderInfo[] = Customers::find()->where(['cust_id' => $resShipment['ship_shipper_id'], 'cust_country_code' => Yii::$app->user->identity->country_code])->distinct()->all();

并将其作为结果 -

Array ( [0] => Array ( ) ) Array ( [0] => Array ( ) [1] => Array ( ) ) Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( [0] => common\models\Customers Object ( [_attributes:yii\db\BaseActiveRecord:private] => Array ( [cust_id] => 79 [cust_user_id] => 2 [cust_designation] => Mr [cust_fname] => abcd [cust_mname] => xyz [cust_lname] => xyz [cust_country_code] => 91 [cust_mobile] => 8888888888 [cust_email] => abcdxyz@gmail.com [cust_id_proof] => [cust_country] => [cust_state] => [cust_city] => [cust_location] => [cust_street] => [cust_address] => delhi [cust_pobox] => 02881 [cust_additional_detail] => [cust_picture] => [verified] => Yes [created] => 2016-04-20 14:45:42 [updated] => 0000-00-00 00:00:00 [deleted] => No ) [_oldAttributes:yii\db\BaseActiveRecord:private] => Array ( [cust_id] => 79 [cust_user_id] => 2 [cust_designation] => Mr [cust_fname] => abcd [cust_mname] => xyz [cust_lname] => xyz [cust_country_code] => 91 [cust_mobile] => 8888888888 [cust_email] => abcdxyz@gmail.com [cust_id_proof] => [cust_country] => [cust_state] => [cust_city] => [cust_location] => [cust_street] => [cust_address] => delhi [cust_pobox] => 413714 [cust_additional_detail] => [cust_picture] => [verified] => Yes [created] => 2016-04-20 14:45:42 [updated] => 0000-00-00 00:00:00 [deleted] => No ) [_related:yii\db\BaseActiveRecord:private] => Array ( ) [_errors:yii\base\Model:private] => [_validators:yii\base\Model:private] => [_scenario:yii\base\Model:private] => default [_events:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => Array ( ) ) ) )

但是,由于此数组开头的空数组,我无法访问这些元素。在可以访问后,我可以在for(严格)循环中填充它。

1 个答案:

答案 0 :(得分:0)

如果你想在数组中得到结果,可以使用ActiveRecord函数toArray()

 $myModel = Customers::find()->
    where(['cust_id' => $resShipment['ship_shipper_id'],
    'cust_country_code' => Yii::$app->user->identity->country_code])->distinct()->all();

$senderInfo = myModel->toArray();