2017-09-20 9 views
0

ここに問題があります。私はユーザーとのドロップダウンリストを持っています。ユーザーをクリックすると、割り当てられているクライアントが表示されます。yii2でarray_unshiftコマンドが正しく機能しない

ここでは、Unassigned clientsの選択肢をドロップダウンの上部に追加して、割り当てられていないクライアントを示しました。 array_unshift()コマンドで追加しましたが、一部の既存ユーザー(すべてではない)にはクライアントが表示されませんが、データベースに割り当てられています。

array_unshiftを削除すると、クライアントは正しく表示されますが、余分な選択はありません。

私はここで

は私の選択機能..ですarray_unshift()はなく、確かに何か問題があることを考えています:PHP docsから

public static function getUsers() 
{ 
    $query = self::find() 
     ->select(['id', "CONCAT(name, ' ', surname, ' (', email, ')') as name"]); 

    $users = ArrayHelper::map($query->asArray()->all(), 'id', 'name'); 

    array_unshift($users, 'Test')); 

    return $users; 
} 

答えて

3

は、すべての数値リテラルキーは変更されませんが、配列キーはゼロからカウントを開始するように変更されます。

使用+

public static function getUnmappedUsersList() 
{ 
    $query = self::find() 
     ->select(['id', "CONCAT(name, ' ', surname, ' (', email, ')') as name"]); 

    return [Yii::t('app', 'ADMIN_PANEL_MIGRATE_UNASSIGNED_CLIENTS')] 
     + ArrayHelper::map($query->asArray()->all(), 'id', 'name'); 
} 
+0

それは動作します。ありがとうございました。すべての数値キーについて書いた文を説明してください...?私はそれを得ることができません。私は 'var_dump()'の 'array_unshift'と戻り値をマイニングしようとしていますが、結果はまったく同じ配列になります。では何が違うのですか? – HELPME

+0

同じ配列にすることはできません。 'array_unshift'を使うと' ArrayHunper :: map'は '['12' => 'aaa'、 '34' => 'bbb'、 '36' => 'ccc']' '[0 =>'シフトされていない要素 '、1 =>' aaa '、2 =>' bbb '、3 =>' ccc '] ' – Bizley

関連する問題