在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}]
我不知道如何将该数组转换为单个字符串?
答案 0 :(得分:3)
laravel DB::select()
函数返回一个对象数组,如Laravel documentation中所述:
select
方法将始终返回array
个结果。数组中的每个结果将是一个PHPStdClass
对象,使您可以访问结果的值
您将需要访问对象的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;