Laravel无法访问下一页,因为试图获取非对象错误显示错误的属性



我给出了一个让我有点困惑的代码。如果我转到我的 url,它会给我一个trying to get property...的错误,当我使用dd作为$response时,它说 null。有人可以告诉我我应该怎么做以及为什么我总是收到此错误吗?我知道发生此错误是因为$response变量没有和status对象?我说的对吗?但是当我 dd$response它说null.提前致谢

我的控制器

public function pingDomain(Request $request){
$host = $request->staging == 1 ? env('PROPNEX_IP') : env('PROPNEX_IP_PROD');
$url = $host. '/propnex/index.php/domain/Ping_domain?domain='.urlencode($request->domain).'&host_ip='.$request->ip;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch,CURLOPT_HTTPHEADER,[
'Content-type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = json_decode(curl_exec($ch));
// dd($response);
//ERROR IS HERE IN IF STATEMENT
if ($response->status == 0){
$host = $request->staging == 1 ? env('PROPNEX_IP') : env('PROPNEX_IP_PROD');
$url = $host . '/propnex/index.php/pnapi/addDomain?type=own&domain='.$request->domain. '&site-id='. $request->siteid;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch,CURLOPT_HTTPHEADER,[
'Authentication: '.$request->agentid . ':'. $request->auth
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = json_decode(curl_exec($ch));
curl_close($ch);
if($response->status == "ok"){
return redirect()->route('ping-domain-success',[
"fname" => $request->fname,
"lname" => $request->lname,
"agentid" => $request->agenatid,
"auth" => $request->auth,
"email" => $request->email,
"prtname" => $request->prtname,
"cea"=> $request->cea,
"type" => $request->type,
"staging"=> $request->staging,
"domain" => $request->domain,
'status' => true,
"ip" => $request->ip,
"siteid"=> $request->siteid,
"isRenew" => $request->isRenew
]);
}else{
return redirect()->route('ping-domain-fail',[
"fname" => $request->fname,
"lname" => $request->lname,
"agentid" => $request->agenatid,
"auth" => $request->auth,
"email" => $request->email,
"prtname" => $request->prtname,
"cea"=> $request->cea,
"type" => $request->type,
"staging"=> $request->staging,
"domain" => $request->domain,
'status' => true,
"ip" => $request->ip,
"siteid"=> $request->siteid,
"isRenew" => $request->isRenew
]);
}

}else{
return redirect()->route('ping-domain-fail',[
"fname" => $request->fname,
"lname" => $request->lname,
"agentid" => $request->agenatid,
"auth" => $request->auth,
"email" => $request->email,
"prtname" => $request->prtname,
"cea"=> $request->cea,
"type" => $request->type,
"staging"=> $request->staging,
"domain" => $request->domain,
'status' => true,
"ip" => $request->ip,
"siteid"=> $request->siteid,
"isRenew" => $request->isRenew
]);
}
}

发生这种情况是因为您的响应中没有值,并且您正在尝试访问响应的属性,而响应不存在。


你可以把is_null检查

将您的if-else循环置于此 if 条件

public function pingDomain(Request $request){
$host = $request->staging == 1 ? env('PROPNEX_IP') : env('PROPNEX_IP_PROD');
$url = $host. '/propnex/index.php/domain/Ping_domain?domain='.urlencode($request->domain).'&host_ip='.$request->ip;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch,CURLOPT_HTTPHEADER,[
'Content-type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = json_decode(curl_exec($ch));
// dd($response);
//ERROR IS HERE IN IF STATEMENT
if(!is_null($response)){
if($response->status == 0){
$host = $request->staging == 1 ? env('PROPNEX_IP') : env('PROPNEX_IP_PROD');
$url = $host . '/propnex/index.php/pnapi/addDomain?type=own&domain='.$request->domain. '&site-id='. $request->siteid;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch,CURLOPT_HTTPHEADER,[
'Authentication: '.$request->agentid . ':'. $request->auth
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = json_decode(curl_exec($ch));
curl_close($ch);
if($response->status == "ok"){
return redirect()->route('ping-domain-success',[
"fname" => $request->fname,
"lname" => $request->lname,
"agentid" => $request->agenatid,
"auth" => $request->auth,
"email" => $request->email,
"prtname" => $request->prtname,
"cea"=> $request->cea,
"type" => $request->type,
"staging"=> $request->staging,
"domain" => $request->domain,
'status' => true,
"ip" => $request->ip,
"siteid"=> $request->siteid,
"isRenew" => $request->isRenew
]);
}else{
return redirect()->route('ping-domain-fail',[
"fname" => $request->fname,
"lname" => $request->lname,
"agentid" => $request->agenatid,
"auth" => $request->auth,
"email" => $request->email,
"prtname" => $request->prtname,
"cea"=> $request->cea,
"type" => $request->type,
"staging"=> $request->staging,
"domain" => $request->domain,
'status' => true,
"ip" => $request->ip,
"siteid"=> $request->siteid,
"isRenew" => $request->isRenew
]);
}

}else{
return redirect()->route('ping-domain-fail',[
"fname" => $request->fname,
"lname" => $request->lname,
"agentid" => $request->agenatid,
"auth" => $request->auth,
"email" => $request->email,
"prtname" => $request->prtname,
"cea"=> $request->cea,
"type" => $request->type,
"staging"=> $request->staging,
"domain" => $request->domain,
'status' => true,
"ip" => $request->ip,
"siteid"=> $request->siteid,
"isRenew" => $request->isRenew
]);
}
}
else{
// DO what you want here when no data found in response;
}

}

相关内容

最新更新