Saya mencoba mengalihkan ke halaman sebelumnya dengan pesan ketika ada kesalahan fatal.
App::fatal(function($exception)
{
return Redirect::back()->with('msg', 'The Message');
}
Pada tampilan mencoba mengakses pesan dengan
Sessions::get('msg')
Tapi tidak ada yang diberikan, apakah saya melakukan sesuatu yang salah di sini?
s
, dan tambahkanuse
jika perlu. Selain itu - harus bekerja.Jawaban:
Mencoba
dan di dalam tampilan Anda panggil ini
sumber
return Redirect::back()->with('msg', 'The Message');
bagaimana mendapatkan "msg" di sini?Session::has('msg')
Session::has('msg')
dan 'msg' tidak ada di sana.withErrors('some error')
- jadi harus berupa string, bukan array.Pengendali
Pedang:
sumber
return redirect()->back()->with('success', 'your message here');
Pendekatan alternatif akan menjadi
Pengendali
Melihat
sumber
Dalam Laravel 5.4 berikut ini bekerja untuk saya:
sumber
withErrors()
metode dalam jawabannya adalah sebuah array dengan dua elemen:['msg', 'The Message']
. Lihat api untuk parameter yang dapat diterima: laravel.com/api/4.2/Illuminate/Http/…withErrors()
metode ini adalah array dengan satu elemen yang merupakankey => value
pasangan, di mana nilainya adalah array. 5.4 API: laravel.com/api/5.4/Illuminate/Http/…Anda memiliki kesalahan (salah mengeja):
Seharusnya:
Saya pikir, sekarang itu harus bekerja, itu untuk saya.
sumber
Cukup atur pesan flash dan arahkan ke kembali dari fungsi pengontrol Anda.
Dan kemudian Anda bisa mendapatkan pesan di file blade tampilan.
sumber
{!! Session::get("msg", '') !!}
sudah cukup.get()
sudah memeriksa apakah kunci ada dan mengembalikan nilai default sebaliknya.Dalam Laravel 5.5 :
Dalam tampilan menggunakan Blade:
sumber
Di laravel 5.8 Anda dapat melakukan hal berikut:
dan di blade:
sumber
Saya berhenti menulis sendiri untuk laravel yang mendukung paket Laracasts yang menangani semuanya untuk Anda. Ini sangat mudah digunakan dan menjaga kode Anda tetap bersih. Bahkan ada laracast yang mencakup cara menggunakannya. Yang harus Anda lakukan:
Tarik paket melalui Komposer.
Masukkan penyedia layanan di dalam app / config / app.php.
Tambahkan alias fasad ke file yang sama di bagian bawah:
Tarik HTML ke tampilan:
Ada tombol tutup di sebelah kanan pesan. Ini bergantung pada jQuery jadi pastikan itu ditambahkan sebelum bootstrap Anda.
perubahan opsional:
Jika Anda tidak menggunakan bootstrap atau ingin melewatkan sertakan pesan kilat dan tulis sendiri kodenya:
Jika Anda ingin melihat HTML yang ditarik masuk
@include('flash::message')
, Anda dapat menemukannyavendor/laracasts/flash/src/views/message.blade.php
.Jika Anda perlu memodifikasi parsial lakukan:
Dua tampilan paket sekarang akan berada di direktori `app / views / packages / laracasts / flash / '.
sumber
di pengontrol
Sebagai contoh
dalam file blade Pesan akan disimpan dalam sesi bukan dalam variabel.
Sebagai contoh
sumber
Untuk Laravel 5.5+
Pengendali:
Pedang:
sumber
Saya menghadapi masalah yang sama dan ini berhasil.
Pengendali
Melihat
sumber
Untuk laravel 5.6. *
Saat mencoba beberapa jawaban yang disediakan di Laravel 5.6. *, Sudah jelas ada beberapa perbaikan yang akan saya posting di sini untuk mempermudah hal-hal yang tidak dapat menemukan solusi dengan sisa jawaban.
LANGKAH 1:Buka File Controller Anda dan Tambahkan ini sebelum kelas:
LANGKAH 2: Tambahkan ini di mana Anda ingin mengembalikan arahan ulang.
LANGKAH 3: Buka file pisau Anda dan edit sebagai berikut
Kemudian tes dan terima kasih nanti.
Ini harus bekerja dengan laravel 5.6. * Dan mungkin 5.7. *
sumber
Untuk Laravel 3
Hanya kepala di jawaban @ giannis christofakis; untuk siapa pun yang menggunakan Laravel 3 ganti
dengan:
sumber
Laravel 5.6. *
Pengendali
Templat Blade
Enyoj
sumber
Saya mendapat pesan ini ketika saya mencoba mengalihkan sebagai:
Saat yang benar adalah:
sumber
Laravel 5.8
Pengendali
Pedang
sumber