Maison > Questions et réponses > le corps du texte
$res=DB::select('select * from qq');
var_dump($res);
$res=DB::table('qq')->get();
var_dump($res);
Après avoir utilisé ces deux méthodes pour interroger, pourquoi est-ce que j'obtiens un tableau unidimensionnel dans l'image ? Pourquoi y a-t-il des objets dans des tableaux unidimensionnels ? Ce que nous obtenons en utilisant une requête native est un tableau à deux dimensions. Pourquoi le résultat n'est-il pas un tableau à deux dimensions ?
阿神2017-06-06 09:56:43
Ce qui suit est la version Laravel 5.4, car je n'ai pas utilisé la version Laravel 5.2.
Exécutez la requête SQL native et obtenez un ensemble de résultats sous la forme d'un tableau Consultez la documentation pour plus de détails.
$res = DB::select('select * from qq');
dd($res);
/*
* array:5 [▼
0 => {#388 ▶}
1 => {#399 ▶}
2 => {#400 ▶}
3 => {#401 ▶}
4 => {#402 ▶}
]
*/
Utilisez le Query Builder pour exécuter l'instruction SQL et obtenir un objet Collection Consultez la documentation pour plus de détails.
$res = DB::table('qq')->get();
dd($res);
/*
* Collection {#398 ▼
#items: array:5 [▼
0 => {#399 ▶}
1 => {#400 ▶}
2 => {#401 ▶}
3 => {#402 ▶}
4 => {#403 ▶}
]
}
*/
Ce que vous obtenez lorsque vous exécutez une instruction SQL native est un tableau unidimensionnel enveloppé d'objets, et non un tableau bidimensionnel.
Ce que vous obtenez en utilisant le constructeur de requête est un objet Collection, qui est également un tableau unidimensionnel enveloppant chaque objet. Alors pourquoi renvoyer l'objet Collection, car il intègre de nombreuses méthodes utiles et élégantes. Tout comme Eloquent renvoie les objets Collection par défaut.
淡淡烟草味2017-06-06 09:56:43
//返回数组 laravel 默认返回的为对象
$res=DB::table('qq')->get()->toarray;
dump($res);