我的代码是这样的。
$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();
任何解决方案?感谢您的关注。
答案 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;