我刚刚在GoDaddy上购买了一个托管VPS(使用CentOS6 + cPanel,Apache 2.4.10,PHP 5.5),并从GoDaddy共享托管中移动了我的Laravel5应用程序。
该应用程序似乎正在运行,但我在一个特定点上获得了内部服务器错误500,我急切地加载了一些关系。仅供参考,它绝对不是.htaccess问题,因为在byGuid()方法中传递一个空数组可以消除错误。此外,这些关系,当直接调用$ obj-> relationshipName,而不是急切加载时,似乎工作正常。
请求URI:
http://somedomain.com/object/view/76a7443f-9e49-4634-9881-b9a936eb4e4c
控制器:
public function getObject(ViewObjectRequest $request) {
$object = $this->objectsRepo->byGuid($request->guid, [
'latestAmbientTemp',
'latestHumidity',
'latestWeight'
]);
//some other code here, irrelevant....
}
存储库:
public function byGuid($obj_guid, array $relationships = []){
if(!is_null($obj= Obj::where('guid', $obj_guid)
->with($relationships)
->first())) return $obj;
}
对象中的关系:
public function latestAmbientTemp() {
return $this->hasOne('BST\Models\TemperatureAmbient')->latest();
}
public function latestHumidity() {
return $this->hasOne('BST\Models\Humidity')->latest();
}
public function latestWeight() {
return $this->hasOne('BST\Models\Weight')->latest();
}
Laravel登录storage/logs/somelog.log
为空。
Apache日志不提供有关错误的任何详细信息:
[15/Dec/2015:07:45:14 -0700] "GET /obj/view/76a7443f-9e49-4634-9881-b9a936eb4e4c HTTP/1.1" 500 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36"
有什么想法吗?我真的坚持这个并且去除急切负载是不可取的,所以任何帮助都将非常感谢!感谢。
更新 即使我将byGuid()方法更改为:
,它也会出现错误500public function byGuid($obj_guid, array $relationships = []){
$obj= Obj::where('guid', $obj_guid)
->first();
if(!is_null(obj)) return $obj->load($relationships);
}
意味着问题绝对存在于渴望加载的关系中。有没有人遇到过这样的问题?
答案 0 :(得分:0)
这个代码可能有一个问题:
public function byGuid($obj_guid, array $relationships = []){
if(!is_null($hive = Obj::where('guid', $obj_guid)
->with($relationships)
->first())) return $obj;
}
我注意到您正在返回$obj
,但此方法中未定义$obj
。
传递空数组时没有看到错误的原因是$hive
将是null
,因此永远不会执行return $obj;
语句。