web-dev-qa-db-fra.com

Yii2 findModel to Array

Dans le yii2 documentation J'ai trouvé qu'il existe un moyen de convertir l'enregistrement actif en tableau.

Customer::find()->asArray()->all();

Mais je ne peux pas utiliser comme ça: -

Customer::findModel($id)->asArray();

Comment dois-je faire? Veuillez aider

12
Chhorn Soro

Vous devez ajouter asArray() à ActiveQuery, pas à l'instance de ActiveRecord. En supposant que votre colonne de clé primaire nommée id, vous devez changer votre code de recherche de modèle en:

Customer::find(['id' => $id])->asArray()->one();
16
arogachev

Modèle entier sous forme de tableau

$model = Customer::find($id)->asArray()->one();

Sélectionnez des colonnes spécifiques

 $model = Customer::find($id)->select('id,name')->asArray()->one();

Sélectionner des colonnes spécifiques comme alias

$model = Customer::find($id)->select('id,name as full')->asArray()->one();

Où condition

$model = Customer::find()->where(['email'=>$email])->asArray()->one();

Des enregistrements entiers?

$model = Customer::find($id)->asArray()->all();
14
Muhammad Shahzad

vous pouvez utiliser

$model = Customer::findModel($id);
$model->attributes;
1
andika