【问题标题】:Laravel 5: Eloquent select + with returns error 502 on nginx/apacheLaravel 5:Eloquent select + 在 nginx/apache 上返回错误 502
【发布时间】:2016-02-04 19:52:18
【问题描述】:

我有以下要求:

            $orders = OrderHeader
            ->with('status')
            ->select('id')
            ->get();

它在 nginx+php-fpm 上返回 502 Bad gateway,在 apache2 上返回 ERR_EMPTY_RESPONSE。

如果我删除“with”或“select”,一切正常。

我已经执行了常规操作,例如重新启动 nginx 和 php-fpm,重新安装 php-fpm,更改 nginx 配置中的一些 fastcgi 参数 - 所有这些操作都没有帮助。

nginx 错误日志显示 '104 Connection reset by peer' 并且 php 日志中没有任何内容。

有什么想法吗?

【问题讨论】:

    标签: php laravel nginx eloquent


    【解决方案1】:

    看来你真正想要的是这样的:

    $orders = OrderHeader->with('status')->lists('id');
    

    无需尝试从表格中选择列。如果出于某种原因您需要更多控制权,请使用closure 相应地过滤查询:

    $orders = OrderHeader->with(['status' => function($query){
        return $query->select('id');
    }])->get();
    

    这应该可以解决您的问题。

    【讨论】:

    • 感谢您的帮助。在数据库中,每个订单头都有一个对应的状态对象。作为查询的结果,我希望将订单 ID 及其状态加入。所以订单 id 字段和状态对象都应该包含在结果中。因此,我认为您的解决方案有点不同。
    猜你喜欢
    • 2020-11-12
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 2021-04-14
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    相关资源
    最近更新 更多