Laravel中出现错误

时间:2017-01-13 08:57:55

标签: php mysql sql laravel laravel-5.2

我的代码是这样的。

$idwisa = "288";
$stemp = DB::table('t_hasil_temp')
    ->select('hasil')
    ->where('id', $idwisa)
    ->get();

print_r($stemp);我得到Array ( [0] => stdClass Object ( [hasil] => 20,24,22,26 ) )hasil是一个字符串

我希望将hasil转换为数组,我尝试这样做。问题在于explode

$temp = explode(",",$stemp->hasil); // error Trying to get property of non-object

$temp = explode(",",$stemp); // error explode() expects parameter 2 to be string, array given

因为之后我会像这样使用$temp

$temps = Objek::whereIn('id',$temp)->get();

任何解决方案?感谢您的关注。

4 个答案:

答案 0 :(得分:1)

尝试

$temp = explode(",",$stemp[0]->hasil); 
print_r($temp);

因为你的数组是多维的对象数组。

答案 1 :(得分:0)

请务必使用->get()->first()

在此更改以获取单个对象

$stemp = DB::table('t_hasil_temp')
   ->select('hasil')
   ->where('id', $idwisa)
   ->first();

->get()给出了一个对象数组,尽管你有一个对象,但你需要添加0th数组的值。这里$stemp[0]

答案 2 :(得分:0)

->get()返回一个结果数组,似乎你想使用只返回第一个找到结果的->first()

$stemp = DB::table('t_hasil_temp')
    ->select('hasil')
    ->where('id', $idwisa)
    ->first();

另外,如果你有一个HasilTemp模型,你也可以使用:

$stemp = HasilTemp::find($idwisa);

答案 3 :(得分:0)

尝试使用

时理解这个概念

->get();

它返回:

Array ( [0] => stdClass Object ( [hasil] => 20,24,22,26 ) ) which is a stdClass Object

您可以访问其元素,如:

$stemp[0]->hasil;