我的模型中有一个返回数组的方法:
public function status($s_type)
{
if (!in_array($s_type, ['speed', 'health'])){
return false;
}
$o_status = Status::where('name', strval($s_type))->first();
$o_response = $this->statuses()
->where('status_id', $o_status->id)
->select('values', 'created_at')
->orderBy('created_at','DESC')
->first();
if($o_response === null){
return false;
}
return [
'value' => $o_response->values,
'timestamp' => $o_response->created_at
];
}
I want to get the timestamp. So, I called this method in a controller. it uses an
public function status(){
$client = new Client();
$notification=Notification::where('active',1)->get();
$status = Status::where('name', 'health')->first();
foreach ($notification as $note) {
$status_health = $note->status('health');
$status_health['timestamp'];
print_r($status_health);
echo '<br>';
/*
;
}*/
}
}
我想只打印时间戳?现在它正在打印整个对象。 Print_r只打印整个对象而不是时间戳。关联数组我真的很糟糕。
答案 0 :(得分:0)
您确定这是我们理解问题所需的所有代码吗?我在这里问,因为错误消息显示您在数组上调用get()
,但您提供的代码中get()
仅使用了$notification = Notification::where('active',1)->get();
$response = $client->get($note->website_url);
(在查询构建器上调用 - &gt;有效)
和
get()
我无法在Illuminate\Database\Eloquent\Model
中找到$client
方法,但也许你写了一个或我错过了什么。在任何一种情况下,status($s_type)
都不是数组,因此该行不能对错误负责。因此,我认为您的代码中某些部分的错误尚未显示给我们。
还有一件事引起了我的注意:在你的if (!in_array($s_type, ['speed', 'health'])){
return false;
}
方法中,就在开头,你在说
$check_frequency = $note->status('timestamp');
然后您稍后使用
调用该方法false
所以这将永远是retrievePeripheralsWithIdentifiers:
。