Laravel: 从路由中跳过一些参数或调用 Controller@show 而不添加 'static' 添加

Laravel: Skip some params from route or call Controller@show without adding 'static' adding

Laravel: 5.4

有效,但我想知道是否还有其他亲解决方案。

我有这样的路线

Route::get('{any}-a{id}', function($any, $id) {
   return ArticleController::show($id);
})->where(['id' => '[0-9]+', 'any' => '.*']);

但这需要public **static** function show($id)

是否有任何其他解决方案可以从 Route 调用 non-static 函数,或者只是跳过 $any 参数,例如 ->compact('id')(在路线中),或: Route::get('#something-I-don't-know#-a{id}'), function(**$id**) { ... })?

我想保留非静态 show 函数,因为它来自另一个路由 Route:resource:route('articles.show',$article->id)。我不想添加 $any 参数。

感谢您的宝贵时间和回答:D

你总是可以这样做而不是调用静态方法:

app()->make('App\Http\Controllers\ArticleController')->show($id);

完整代码如下:

Route::get('{any}-a{id}', function($any, $id) {
   return app()->make('App\Http\Controllers\ArticleController')->show($id);
})->where(['id' => '[0-9]+', 'any' => '.*']);