Laravelの戻るボタン


86

ページに簡単な戻るボタンを作成しようとしています。ユーザーは2つの異なるページからこのページにアクセスできるので、どちらのページからアクセスしたかを知りたいと思います。それは可能ですか?


3
{{ url()->previous() }}Laravel 5中
コナーリーチ

回答:


149

Laravelでは、次のようなことができます:(<a href="{{ Request::referrer() }}">Back</a>ブレードを使用していると仮定します)。

Laravel 4

{{ URL::previous() }}

Laravel 5+

{{ url()->previous() }}

Laravelのドキュメント


この作品をありがとう!ドキュメントでこれを見つけることができませんでした... laravelからもっと得ることができる他の場所はありますか?
cosapostolo 2012

2
ドキュメントをチェックしたり、フォーラムを使用したり、laravelフォルダー内のソースを参照したり、freenodeのIRCチャネル#laravelにハングアップしたりできます。昼夜を問わず、IRCチャンネルにたくさんのフレンドリーで親切な人があなたの質問に答えることを強くお勧めします。
アノン2012

21
@yannishristofakis Laravel 4を使用していますか?URLの動作が変更されたため、URL::previous()代わりに使用してください。
Markus Hofmann 2013

2
Request :: header( "referrer");
ラメッシュ2014年

1
これとURL :: previous()アプローチの問題は、httpリファラーに基づいていることです。1)これは、すべてのユーザーエージェントによって設定されるとは限らないため、常に信頼できるとは限りません。2)さらに、設定されていても、外部ソースのリンクから特定のページにアクセスすると、そのソースに戻ります。
morksinaanab 2014年

70

私はこれが古い質問であることを知っていますが、同じ解決策を探しているときにそれを見つけました。上記のソリューションはLaravel4では機能しないようですが、今すぐ使用できます。

<a href="{{ URL::previous() }}">Go Back</a>

これがL4でこの機能を探している人々に役立つことを願っています

(出典:https//github.com/laravel/framework/pull/501/commits


55

Laravel 5.2以降、戻るボタン

<a href="{{ url()->previous() }}" class="btn btn-default">Back</a>

18

実際にdoworkを使用{{ URL:previous() }}していますが、同じ名前のルートを使用して複数のビューを表示している場合は、このルートの最初のエンドポイントに戻ります。

私の場合、ユーザーが選択したパラメーターに基づいて3つの異なるビューをレンダリングできる名前付きルートがあります。もちろん、ユーザーがまだオプションを選択していない場合、このルートの最初の入力にはデフォルトのケースがあります。

を使用するURL:previous()と、ユーザーが他のオプションを選択した場合でも、Laravelはデフォルトのビューに戻ります。ボタン内でJavaScriptを使用するだけで、正しいビューに戻ることができました。

<a href="javascript:history.back()" class="btn btn-default">Voltar</a>

明確にするために、これをLaravel5.3でテストしました。


17

以下は、完全なBlade(Laravelが使用するテンプレートエンジン)ソリューションです。

{!! link_to(URL::previous(), 'Cancel', ['class' => 'btn btn-default']) !!}

クラスのoptions配列はオプションであり、この場合、Bootstrap3ボタンのスタイルを指定します。


1
{{...}}の代わりに{!!を使用する必要があるので、変更する必要があることが1つあります。... !!}そうしないと、文字列がエスケープされます。
happyhardik 2015

1
確かに、これはLaravel 4で機能していましたが、デフォルトでエスケープされていました。現在のLaravelバージョンで動作するように更新されました。ありがとう:)
mike.bronner 2015

14

5.1では、これを機能させることしかできませんでした。

<a href="{{ URL::previous() }}" class="btn btn-default">Back</a>

完璧に動作します。ありがとうございます!
Matt Inamdar 2016年

2

以下のいずれかが問題を解決します

URL::previous() 
URL::back()

その他

URL::current()

2

この問題にはjavascriptを使用できます。ブラウザの履歴からリンクを取得します。

<script>
function goBack() {
  window.history.back();
}
</script>
<button onclick="goBack()">Go Back</button>


0

{{URL :: previous()}}を使用できますが、完全なUXではありません。

たとえば、F5ボタンを押して、もう一度クリックして{{URL :: previous()}}の[戻る]ボタンを押すと、そのままになります。

良い方法は、{{route( 'page.edit'、$ item-> id)}}を使用することです。リダイレクトしたいのは常に真のページです。


0
<a href="{{ url()->previous() }}" class="btn btn-warning"><i class="fa fa-angle-left"></i> Continue Shopping</a>

これはLaravel5.8で機能しました

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.