将变量调用到子函数?

Calling variables to sub function?

我有一个 post 变量,我想将它用于我的子函数。我怎样才能做到这一点 ?当我尝试时它说 "Undefined Variable".

控制器

public function getSingle($slug){

    $post = Post::where('slug',$slug)->first();

    $related_categories_posts = Post::whereHas('categories',function ($query){
        $query->where('category_name', $post->categories->category_name);
    })
    ->take(3)
    ->get();



    return view('frontend.single')
            ->with('post',$post)
            ->with('related_categories_posts',$related_categories_posts);
}

有什么建议吗?

您需要使用 use 将此变量传递给函数,如 docs 中所述。

$related_categories_posts = Post::whereHas('categories', function ($query) use ($post){
    $query->where('category_name', $post->categories->category_name);
})