Laravel 뒤로 버튼


84

페이지에 간단한 뒤로 버튼을 만들려고합니다. 사용자는 두 개의 다른 페이지에서이 페이지에 도착할 수 있으므로 어느 페이지에서 도착했는지 알고 싶습니다. 가능합니까?


2
{{ url()->previous() }}in Laravel 5
Connor Leech

답변:


143

Laravel에서는 다음과 같이 할 수 있습니다 : <a href="{{ Request::referrer() }}">Back</a>(블레이드를 사용하고 있다고 가정).

라 라벨 4

{{ URL::previous() }}

라 라벨 5+

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

라 라벨 문서


감사합니다! 문서에서 이것을 찾을 수 없습니다 ... 라 라벨에서 더 많은 것을 얻을 수있는 다른 곳이 있습니까?
cosapostolo

2
문서를 확인하고, 포럼을 사용하고 , laravel 폴더에서 소스를 찾아 보거나, freenode 에서 IRC 채널 #laravel에 매달릴 수 있습니다. IRC 채널에 친절하고 도움이되는 많은 사람들을 적극 추천하여 낮이든 밤이든 질문에 답하십시오.
Anon

21
@yannishristofakis 라 라벨 4를 사용하고 계십니까? URL 동작이 변경되었으므로 URL::previous()대신 사용하십시오.
Markus Hofmann 2013

2
요청 :: header ( "referrer");
라 메쉬

1
이것과 URL :: previous () 접근 방식의 문제점은 http 참조자를 기반으로한다는 것입니다. 1) 이것은 모든 사용자 에이전트에 의해 설정되지 않을 수 있으므로 항상 의존 할 수는 없습니다. 2) 또한 설정되어 있지만 외부 소스의 링크에서 특정 페이지를 방문하면 해당 소스로 돌아갑니다.
morksinaanab

70

나는 이것이 오래된 질문이라는 것을 알고 있지만 동일한 해결책을 찾는 동안 발견했습니다. 위의 솔루션은 Laravel 4에서 작동하지 않는 것으로 보이지만 지금 사용할 수 있습니다.

<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>

17

다음은 완전한 블레이드 (라 라벨이 사용하는 템플릿 엔진) 솔루션입니다.

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

클래스가있는 옵션 배열은 선택 사항이며이 경우 Bootstrap 3 버튼의 스타일을 지정합니다.


1
변경해야 할 것이 하나 있습니다. {{...}} 대신 {!! ... !!} 그렇지 않으면 문자열이 이스케이프됩니다.
happyhardik

1
사실, 당시에는 기본적으로 이스케이프되기 전에 Laravel 4에서 작동했습니다. 현재 Laravel 버전에서 작동하도록 업데이트되었습니다. 감사합니다 :)
mike.bronner

17

실제로 {{ URL:previous() }}do work를 사용하지만 동일한 이름의 경로를 사용하여 여러보기를 표시하는 경우이 경로의 첫 번째 끝점으로 돌아갑니다.

제 경우에는 사용자가 선택한 매개 변수를 기반으로 3 개의 다른 뷰를 렌더링 할 수있는 명명 된 경로가 있습니다. 물론 사용자가 아직 옵션을 선택하지 않은 경우이 경로의 첫 번째 입력에 대한 기본 사례가 있습니다.

를 사용할 때 URL:previous()Laravel은 사용자가 다른 옵션을 선택 했더라도 기본보기로 돌아갑니다. 버튼 내에서 자바 스크립트를 사용하여 올바른보기로 돌아갑니다.

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

설명을 위해 Laravel 5.3에서 이것을 테스트했습니다.


14

5.1에서는 이것이 작동하도록 만들 수있었습니다.

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

완벽하게 작동합니다. 감사합니다!
Matt Inamdar

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>

이것은 Laravel 5.8에서 작동했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.