繁体   English   中英

如何在 Laravel 中调用子 function 中的父 function 值

[英]How to call parent function value in child function in Laravel

在下面的代码中,我想在whereRaw查询中使用$id ,但是我得到一个错误,比如“未定义的变量”。

public function getPendingArtistLink($id ,Request $request)
{
    if (!Auth::guard('admin')->user()->hasPermissionTo('appointment-master')) {
        return response()->json(['message' => 'you have no permission to acces this']);
        return "you have no permission to acces this";
    }

    $objSalon = Artist::whereNotExists(function($query) {
            $query->select(DB::raw('*'))
                ->from('artist_services')
                ->whereRaw('(artists.id = artist_services.artist_id))')
                ->whereRaw('(artists.branch_id = '.$id.' AND artists.status != "Deleted"');
        })
        ->toSql();
        //->get();
    dd($objSalon);
    return view('Backend.branch.missing_artist_salon', compact('objSalon'));
}

如何在我尝试的地方访问我的$id参数?

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

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

或者您可以使用这样的内联函数:

    $objSalon = Artist::whereNotExists(fn($query) => 
            $query->select(DB::raw('*'))
                ->from('artist_services')
                ->whereRaw('(artists.id = artist_services.artist_id))')
                ->whereRaw('(artists.branch_id = '.$id.' AND artists.status !="Deleted"')
            )->toSql();

内联函数可以访问在上层 scope 中定义的变量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM