web-dev-qa-db-ja.com

Laravel:現在のURLをパラメーター付きのビューヘルパーとして取得する方法

自分のビューに、配置されたページと同じページを参照するリンクを作成したい。そして、パラメーターを指定できるようにしたいと考えています。

たとえば、言語を変更したいです。私のようなルートがあります

domain.com/{lang}/xyz

私の見解では、次のようなことをしたいと思います

<a href="{{ URL::action(this, ['lang' => 'en']) }}">EN</a>

したがって、ページを簡単にリロードできますが、「lang」パラメーターを変更するだけです。

うまくいけば、それは理解できる。私を助けてみてください。

(別の副次的な質問:Laravelのすべてのビューヘルパーのリストなどのリソースはありませんか?使用できるビューヘルパーはどこで確認できますか?)

7
Fabian

ビューで使用するには、laravelのヘルパーメソッドを使用します。

url()->current()

これは現在のURLを取得します。現在のルート名を取得する必要がある場合は、

Route::current()->getName()

これで、このルート名を使用して独自の新しいURLを作成できます。

例えば:

<a href="{{ URL::action(Route::currentRouteName(), ['lang' => 'en']) }}">EN</a>

ルートの定義は次のようになります。

Route::get('/{lang}/about/', ['as'=>'about_us', 'uses'=>'PagesController@about'])

これにより、現在のURLが提供されます。

しかし、あなたのケースでは、多言語にはこのパッケージを使用する方が良いです: https://github.com/mcamara/laravel-localization

それはかなりシンプルで使いやすいです。

21
Jilson Thomas