Laravel 5.7路由传递到控制器只是第二个参数

Laravel 5.7路由传递到控制器只是第二个参数,laravel,laravel-5.7,Laravel,Laravel 5.7,我有以下路线 Route::get('/{slug}/pd/{public_id}', 'Products\ShowController'); 我只想把public_id参数传递给ShowController class ShowController extends Controller { public function __invoke($public_id) { dd($public_id); }

我有以下路线

Route::get('/{slug}/pd/{public_id}', 'Products\ShowController');
我只想把public_id参数传递给ShowController

       class ShowController extends Controller
{
        public function __invoke($public_id)
        {
            dd($public_id);
        }
    }

如果我在上面运行代码,它将返回slug值。我需要slug只是url中的通配符。

如果slug是数据库中的某些单词,可能您可以检查路由前缀以从路由中删除slug。如果不是,在控制器中输入段塞后忽略它。如果它在路线中,它将在控制器中可用

class ShowController extends Controller
{
     public function __invoke($slug, $public_id)
     {
          dd($public_id);
     }
}