小编Ren*_*lho的帖子

Laravel 5.4:如何在控制器中不使用route参数

我正在开发一种多语言应用程序,并试图制作一个中间件以将路由{locale}前缀传递给URL。但是现在我不需要在控制器中使用此{locale}参数,例如:

public function getPost(App\Post $post)
{
    return view('welcome')->withPost($post);
}
Run Code Online (Sandbox Code Playgroud)

但上面的代码不能正常工作,除非我改变App\Post $post$locale, App\Post $post

问题是因为每当我创建一个新的控制器时,我都需要传递$ locale参数。那不酷。

如何避免将$locale参数传递给所有控制器?我不需要它,因为我已经在中间件上使用了它。

更新:

路由\ web.php

Route::prefix('{locale}')->middleware('locale')->group(function () {     

    Route::get('/', 'PageController@getHome')->name('welcome');
    Auth::routes();
    Route::get('/home', 'HomeController@index')->name('home');

    ...

    // This route must be the last!
    Route::get('/{post}', 'PageController@getPost')->name('post');
});
Run Code Online (Sandbox Code Playgroud)

laravel laravel-5.4

1
推荐指数
1
解决办法
1519
查看次数

标签 统计

laravel ×1

laravel-5.4 ×1