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.