难以将元素从此数组中取出

时间:2018-09-22 01:11:58

标签: php arrays laravel

在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 :(得分:3)

laravel DB::select()函数返回一个对象数组,如Laravel documentation中所述:

  

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;

答案 1 :(得分:0)

最好使用这种查询方法

$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;