Php 如何在Laravel中调用子函数中的父函数值

Php 如何在Laravel中调用子函数中的父函数值,php,laravel,Php,Laravel,在下面的代码中,我想在whereRaw查询中使用$id,但是我得到了一个类似“undefined variable”的错误 如何在尝试的位置访问$id参数 $objSalon = Artist::whereNotExists(function($query) use ($id) { ... }) 但正如@Skrrp所提到的,最好不要这样使用。或者您可以使用如下内联函数: $objSalon=Artist::whereNotExists(fn($query)=> $query->select(D

在下面的代码中,我想在
whereRaw
查询中使用
$id
,但是我得到了一个类似“undefined variable”的错误

如何在尝试的位置访问
$id
参数

$objSalon = Artist::whereNotExists(function($query) use ($id) { ... })

但正如@Skrrp所提到的,最好不要这样使用。

或者您可以使用如下内联函数:

$objSalon=Artist::whereNotExists(fn($query)=>
$query->select(DB::raw('*'))
->来自(‘艺术家服务’)
->whereRaw('(artists.id=artist\u services.artist\u id)))
->whereRaw(‘(artists.branch_id=‘.$id.”和artists.status!=‘Deleted’)
)->toSql();

内联函数可以访问上限中定义的变量

此代码极易受到SQL注入攻击。永远不要将变量连接到SQL字符串中,始终使用参数化查询。既然可以使用关系,为什么还要使用原始SQL?
$objSalon = Artist::whereNotExists(function($query) use ($id) { ... })