اذهب إلى المحتوى

السؤال

نشر

استخدم Session flash في لارافل أثناء التحقق من قيم المدخلات ضمن form لإظهار رسائل الخطأ إلى المستخدمين.

وكما وجدت ضمن التوثيق الرسمي في لارافل أنه عند إنشاء session flash وتعيين قيمه لها، يتم إجراء destroy لهذه الجلسة:

Session::flash( 'some_key', $some_data );

للحصول على الجلسة:

{{ Session::get( 'some_key' ) }}

ولكن عندما لا يتم تطبيق التحقق من المدخلات يظهر الخطأ أيضاً في الصفحة، وعندما أقوم بتعديل الفورم والضغط على submit يتم إرسال البيانات وإدخالها في قاعدة البيانات وكل شيء يصبح على مايرام باستثناء أن الخطأ يعود ويظهر من جديد ضمن الصفحة. نفس الحال عند الضغط على submit مع وضع قيم خاطئة.

كيف يمكن حل هذه المشكلة؟

Recommended Posts

  • 0
نشر

تحدث هذه المشكلة أحياناً في الإصدارات الأقدم من لارافل عند استخدام return view أو return View::Make في المتحكّم المسؤول عن التعامل مع بيانات الفورم، بينما يجب استخدام:

return redirect()->route()

كما يمكنك تجربة استخدام:

Session::now('some_key', 'message');

أو:

session()->now('some_key', 'message');

 

  • 0
نشر

يحتفظ Session Flash ببيانات الجلسة لطلبين لأنه كان كان من المفترض استخدامه في عملية إعادة التوجيه. لذلك يوجد عملية الانسحاب من الجلسة بدلاً من الحصول عليها. باستخدام Session::pull , يحصل Session::pull على بيانات الجلسة و يزيلها من الجلسة. 

@if(Session::has('message))
	<div class="alert alert-message">{{ Session::pull('message) }}</div>
@endif

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...