Задать вопрос
gagablik
@gagablik
Начинающий Web разработчик

Выборка из laravel не преобразуется в массив?

Делаю выборку из БД в laravel.

$aComments = DB::table('Comments')
                ->where('Name', $name)
                ->get()
                ->toArray();


После перебираю массив $aComments

foreach ($aComments as $comment) {
        dd(gettype($aJoinCommentUser), gettype($comment));
    }


И у меня выводит, что $aComments это array, а $comment это object

Не пойму мочему

->get()
    ->toArray()


не преобразует выборку в массив. И как реализовать, что бы массив был целиком массивом.
  • Вопрос задан
  • 500 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
i__dmitry
@i__dmitry
Weaving a web
https://laravel.com/docs/8.x/collections#method-toarray

The toArray method converts the collection into a plain PHP array. If the collection's values are Eloquent models, the models will also be converted to arrays


Дальше смотрим:
https://laravel.com/docs/8.x/queries#retrieving-al...

The get method returns an Illuminate\Support\Collection instance containing the results of the query where each result is an instance of the PHP stdClass object.


Используй не фасад DB, а Eloquent для того, чтобы получить тот результат, которого ты ожидаешь.
Пример:
$aComments = Comment::where('Name', $name)
                ->get()
                ->toArray();
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Либо перестаньте мучать Ларавель и пишите по-старинке $result = mysql_query("SELECT * FROM comments where name='$name'"); либо учитесь уже пользоваться инструментом не как обезьяна микроскопом.
Eloquent - это ORM. Object-Relational Mapper. Транслятор из РСУБД в объекты.
$comment и должен быть объектом, и нет ни одной причины превращать его "полностью в массив"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы