Laravel 5.1 DB:wählen Sie die toArray()
Ich habe ein großes SQL statement, das ich bin ausführt, etwa so:
$result = DB::select($sql);
Beispielsweise
$result = DB::select('select * from users');
Möchte ich das Ergebnis in ein array - aber im moment gibt es eine Struktur wie ein array mit Objekten...
Array
(
0 => stdClass::__set_state(array(
'id' => 1,
'first_name' => 'Pavel',
'created_at' => '2015-02-23 05:46:33',
)),
1 => stdClass::__set_state(array(
'id' => 2,
'first_name' => 'Eugene',
'created_at' => '2016-02-23 05:46:34',
)),
...etc...
)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint, wie Sie benötigen, zu werfen stdClass Objekte als Array, so können Sie die Struktur, die Sie suchen
Die besten Lösungen zu suchen, bei der Leistung wäre beim ändern der Methode, wie die Daten gepackt aus der Datenbank:
Natürlich, wenn Sie wollen, erhalten Sie alle Daten als array, es wird genug sein, um Veränderung in
config/database.php
aus:in
und dann läuft nur:
werden Sie wieder mehrdimensionales array anstatt array von Objekten
Call to undefined method Illuminate\Database\MySqlConnection::getFetchMode()
.toArray()
Methode wandelt die collection in ein array. Modelle umgewandelt werden, um arrays zu:So, ich denke, dann machst du etwas falsch. Wenn Sie weitere Hilfe benötigen, bitte aktualisieren Sie die Frage mit allen zugehörigen code.
Auch, nur Beredtes Sammlungen (models) haben
toArray()
Methode.Diese Methode verwenden, verwenden Sie Beredt:
$result = DB::select('select * from users');
Für laravel/lumen 5.4 (verwendet, beleuchten/Datenbank 5.4):
Oder hören Illuminate\Database\Events\StatementPrepared Veranstaltung: Laravel 5.4 - How zu setzen, PDO Fetch-Modus?
Versuchen, diese
$users = DB::select('select * from users where active = ?', [1]);
- Auch Ihre Beispiele nicht funktionieren. "Last man etwas bekommen, müssen Sie entfernen->get()
Eloquent
Hier ist ein anderer Ansatz, der es Wert ist, erwähnt zu werden:
Funktioniert es, das habe ich überprüft.
Können Sie dies tun, Weg..
Oben
Zum Beispiel, jetzt können Sie das Ergebnis wie auf diese Weise.
Nun können Sie ändern, um die default-fetch-Modus.
Einfachste Weg ist, mit laravel toArray-Funktion:
können Sie versuchen, diese
Eine heikle und einfacher Weg:
//Got array in stdClass converting to JSON
$temp1= json_encode($result);
//JSON to Array
$temp2= json_decode($temp1,1);
Werden können, wird es Ihnen helfen,