2016-04-27 5 views
0

からYii2クエリ:クエリによって返されるオブジェクト内のアクセス配列要素Iは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] => [email protected] [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] => [email protected] [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(厳密に)ループに入れるべきです。あなたはActiveRecordの機能のtoArray()を使用することができる配列で結果をしたい場合は

+0

)( '$ senderInfoは[] =お客様が見つけ::' asArray() 'を使用して、これを試してみてください=> $ _Shipment_id ''、 'cust_country_code' => Yii :: $ app-> user-> identity-> country_code] - > distinct() - > asArray() - > > all(); ' –

+0

も機能しません。 –

答えて

0

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

$senderInfo = myModel->toArray(); 
+0

これはすでに配列なので、toArray()を使用すると、次のエラーが返されます: '非オブジェクトのメンバ関数toArray()を呼び出す' –

+0

Model :: find().....の結果 - > all()は配列ではなく、モデルのコレクションです。配列に変換する場合は、上のcommenrやtoArray()のように使用してください。 – scaisEdge

+0

助けてくれてありがとう。しかし私は私の問題を解決する別の方法を見つけました。だから、今私はこのクエリを使用していません。とにかく、助けてくれてありがとう。 –

関連する問題