Трудно получить элемент из этого массива - PullRequest
0 голосов
/ 22 сентября 2018

В моем приложении Laravel я пытаюсь получить доступ к тексту в массиве только в одном элементе, но это дает мне ошибку.

$account_id = DB::select('select id from chart_of_accounts where type =\'Expense\' LIMIT '.$request->account_id.',1;');
return $account_id[0];

Сообщение об ошибке:

The Response content must be a string or object implementing __toString(), "object" given.

Если я верну все это:

return $account_id;

Вывод:

[{"id":19}]

Я не знаю, как я могу преобразовать этот массив в одну строку?

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Лучше использовать этот метод запроса

$account = DB::table('chart_of_accounts')
                ->select('id')
                ->where('id', $request->account_id)
                ->where('type', 'Expense')
                ->take(1)
                ->first();

return $account->id;

, но для смещения:

$account = DB::table('chart_of_accounts')
                ->select('id')
                ->where('type', 'Expense')
                ->offset($request->account_id)
                ->take(1)
                ->first();

return $account->id;
0 голосов
/ 22 сентября 2018

Функция laravel DB::select() возвращает массив объектов, как указано в документации Laravel :

Метод select всегда возвращает arrayРезультаты.Каждый результат в массиве будет объектом PHP StdClass, позволяющим вам получить доступ к значениям результатов

Вам потребуется доступ к атрибуту id объекта:

$account_id = DB::select('select id from chart_of_accounts where type =\'Expense\' LIMIT '.$request->account_id.',1;');
return $account_id[0]->id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...