Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5-加载关系触发服务器错误500_Php_Apache_Laravel_Laravel 5_Relationships - Fatal编程技术网

Php Laravel 5-加载关系触发服务器错误500

Php Laravel 5-加载关系触发服务器错误500,php,apache,laravel,laravel-5,relationships,Php,Apache,Laravel,Laravel 5,Relationships,我刚刚在GoDaddy上购买了一个托管VPS(使用CentOS6+cPanel、Apache2.4.10、PHP5.5),并将我的Laravel5应用程序从一个GoDaddy共享主机移走 该应用程序似乎正在运行,但我在某个特定点收到一个内部服务器错误500,在该点上我急于加载一些关系。仅供参考,这绝对不是.htaccess问题,因为在byGuid()方法中传递空数组消除了错误。此外,当直接以$obj->relationshipName的形式调用这些关系时,它们似乎工作得很好,并且不急于加载 请求

我刚刚在GoDaddy上购买了一个托管VPS(使用CentOS6+cPanel、Apache2.4.10、PHP5.5),并将我的Laravel5应用程序从一个GoDaddy共享主机移走

该应用程序似乎正在运行,但我在某个特定点收到一个内部服务器错误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 log in
存储/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()方法更改为:

public function byGuid($obj_guid, array $relationships = []){
            $obj= Obj::where('guid', $obj_guid)
                ->first();
            if(!is_null(obj)) return $obj->load($relationships);
        }

这意味着问题肯定在关系中。以前有人遇到过这样的问题吗?

一个问题可能是以下代码:

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
,因此
返回$obj语句从未执行。

一个问题可能是此代码:

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
,因此
返回$obj语句永远不会执行。

也许您遇到了内存限制-VPS有哪些资源?你需要检查你的错误日志,不要访问logIt的1GB服务器。我的共享主机也是1GB,我在那里没有任何问题。一旦我点击URL,错误日志(在cPanel>error log中)不会得到任何新的错误,服务器上关联的错误日志文件也不会。Apache配置有error\u reporting=E\u ALL和display\u errors=OnYou提及CPanel错误日志-这是否显示Apache错误日志中的项目?在我的服务器上,显示了由PHP引起的500个错误。这是一个内存限制问题。我的服务器的值为32MB,对于正在运行的数据密集型脚本来说太低。将php.ini中的值设置为-1(即无限制)修复了该问题。也许您遇到了内存限制-VPS有哪些资源?你需要检查你的错误日志,不要访问logIt的1GB服务器。我的共享主机也是1GB,我在那里没有任何问题。一旦我点击URL,错误日志(在cPanel>error log中)不会得到任何新的错误,服务器上关联的错误日志文件也不会。Apache配置有error\u reporting=E\u ALL和display\u errors=OnYou提及CPanel错误日志-这是否显示Apache错误日志中的项目?在我的服务器上,显示了由PHP引起的500个错误。这是一个内存限制问题。我的服务器的值为32MB,对于正在运行的数据密集型脚本来说太低。将php.ini中的值设置为-1(即无限制)修复了该问题。很抱歉,这是一个输入错误,$hive应该是$obj。问题仍然存在。很抱歉,这是一个输入错误,$hive应该是$obj。问题依然存在。