我需要你的帮助。我尝试执行此查询:
public function future_trips($cat_id, $city_id)
{
$trips=Events::where('start_date','>',Carbon::now()->subDay(5))
->where(function ($q)
{
$q->where('category_id',$cat_id)->orWhere('city', $city_id);
})
->get();
}
ErrorException:未定义的变量:文件C:\ x中的cat_id ......
未定义变量$ cat_id少...(Ctrl + F1)检查可以 产生两种类型的警告:变量的定义不能 随处可见。 (“未定义的变量”)有一个或多个路径 无需定义变量即可使用变量用法。 (“变量可能尚未定义”)
有人可以解释为什么吗?
答案 0 :(得分:3)
您需要使用use
将这些变量添加到函数闭包中。 Php不会在闭包之外自动包含变量。
public function future_trips($cat_id, $city_id)
{
$trips = Events::where('start_date', '>', Carbon::now()->subDay(5))
->where(function ($q) use ($cat_id, $city_id)
{
$q->where('category_id',$cat_id)->orWhere('city', $city_id);
})
->get();
}