Tôi đang cố gắng tạo một nút quay lại đơn giản trên một trang. Người dùng có thể đến trang này từ hai trang khác nhau, vì vậy tôi muốn biết anh ta đến từ trang nào. Điều đó có thể không?
Tôi đang cố gắng tạo một nút quay lại đơn giản trên một trang. Người dùng có thể đến trang này từ hai trang khác nhau, vì vậy tôi muốn biết anh ta đến từ trang nào. Điều đó có thể không?
Câu trả lời:
Trong Laravel, bạn có thể làm như sau: <a href="{{ Request::referrer() }}">Back</a>
(giả sử bạn đang sử dụng Blade).
Laravel 4
{{ URL::previous() }}
Laravel 5+
{{ url()->previous() }}
URL::previous()
thay thế.
Tôi biết đây là một câu hỏi cũ nhưng tôi đã tìm thấy nó trong khi tìm kiếm giải pháp tương tự. Giải pháp trên dường như không hoạt động trong Laravel 4, tuy nhiên bạn có thể sử dụng giải pháp này ngay bây giờ:
<a href="{{ URL::previous() }}">Go Back</a>
Hy vọng điều này sẽ giúp những người tìm kiếm tính năng này trong L4
(Nguồn: https://github.com/laravel/framework/pull/501/commits )
Laravel 5.2+, nút quay lại
<a href="{{ url()->previous() }}" class="btn btn-default">Back</a>
Sau đây là giải pháp hoàn chỉnh của Blade (công cụ tạo khuôn mẫu mà Laravel sử dụng):
{!! link_to(URL::previous(), 'Cancel', ['class' => 'btn btn-default']) !!}
Mảng tùy chọn với lớp là tùy chọn, trong trường hợp này, nó chỉ định kiểu cho nút Bootstrap 3.
Thật vậy bằng cách sử dụng {{ URL:previous() }}
do work, nhưng nếu bạn đang sử dụng cùng một tuyến đường được đặt tên để hiển thị nhiều chế độ xem, nó sẽ đưa bạn trở lại điểm cuối đầu tiên của tuyến đường này.
Trong trường hợp của tôi, tôi có một tuyến đường được đặt tên, dựa trên tham số do người dùng chọn, có thể hiển thị 3 chế độ xem khác nhau. Tất nhiên, tôi có một trường hợp mặc định cho lần nhập đầu tiên trong tuyến đường này, khi người dùng chưa chọn bất kỳ tùy chọn nào.
Khi tôi sử dụng URL:previous()
, Laravel sẽ đưa tôi trở lại chế độ xem mặc định, ngay cả khi người dùng đã chọn một số tùy chọn khác. Chỉ sử dụng javascript bên trong nút tôi đã hoàn thành để được trả về chế độ xem chính xác:
<a href="javascript:history.back()" class="btn btn-default">Voltar</a>
Tôi đã thử nghiệm điều này trên Laravel 5.3, chỉ để làm rõ.
Vào ngày 5.1, tôi chỉ có thể làm cho điều này hoạt động.
<a href="{{ URL::previous() }}" class="btn btn-default">Back</a>
Một trong những cách dưới đây giải quyết vấn đề của bạn
URL::previous()
URL::back()
khác
URL::current()
Bạn có thể sử dụng javascript cho vấn đề này. Nó truy xuất liên kết từ lịch sử trình duyệt.
<script>
function goBack() {
window.history.back();
}
</script>
<button onclick="goBack()">Go Back</button>
Bạn có thể sử dụng {{URL :: before ()}} nhưng nó không phải là UX hoàn hảo.
Ví dụ: khi bạn nhấn nút F5 và nhấp lại vào Nút Quay lại với {{URL :: before ()}}, bạn sẽ ở lại.
Một cách hay là sử dụng {{route ('page.edit', $ item-> id)}}, đây luôn là trang đúng mà bạn muốn chuyển hướng.
<a href="{{ url()->previous() }}" class="btn btn-warning"><i class="fa fa-angle-left"></i> Continue Shopping</a>
Điều này hoạt động trong Laravel 5.8
{{ url()->previous() }}
trong Laravel 5