PHP可变范围问题laravel

Luc*_*oni 2 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);
}
Run Code Online (Sandbox Code Playgroud)

我收到"变量未定义"错误.为什么?

Rok*_*alj 7

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

function($query) use ($orderId)
    {
        $query->where('id', '=', $orderId);
    }
Run Code Online (Sandbox Code Playgroud)

代替:

function($query)
    {   global $orderId;
        $query->where('id', '=', $orderId);
    }
Run Code Online (Sandbox Code Playgroud)

  • 除了关键字是'使用'而不是'使用' (2认同)