【问题标题】:PHP Variable scope issue laravelPHP 变量范围问题 laravel
【发布时间】:2013-01-14 22:17:52
【问题描述】:
public function action_detail($orderId)
{
    $customerWithOrderDetails = Customer::with(array('order' => function($query)
    {   global $orderId;
        $query->where('id', '=', $orderId);
    }, 'order.orderdetail', 'order.attachment'))->find(Auth::user()->id);
    return var_dump($customerWithOrderDetails);
}

我收到“变量未定义”错误。为什么?

【问题讨论】:

    标签: php variables laravel


    【解决方案1】:

    $orderId不是全局变量,而是父函数的变量。试试这个:

    function($query) use ($orderId)
        {
            $query->where('id', '=', $orderId);
        }
    

    代替:

    function($query)
        {   global $orderId;
            $query->where('id', '=', $orderId);
        }
    

    【讨论】:

    • 除了关键字是'use'而不是'using'
    • 当然,没问题。如果它适合你,你应该把它打勾作为答案:)
    • 是的,先生! :) Stackoverflow 社区很棒.. 如果没有它,我将无法完成一些项目.. 教会了我很多!
    猜你喜欢
    • 2016-08-30
    • 2011-04-10
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 2011-04-13
    • 2011-10-20
    相关资源
    最近更新 更多