PHP可变范围问题laravel

时间:2013-01-30 22:35:36

标签: php variables laravel

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);
}

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

1 个答案:

答案 0 :(得分:7)

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

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

而不是:

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