Amir Alsaeed نشر 18 مارس 2021 أرسل تقرير نشر 18 مارس 2021 أحاول إظهار رسائل خطأ للمستخدم عند إدخال قيم باستخدام التحقق validation في لارافيل، لقد قمت بإضافة الكود التالي في المتحكم: public function saveUser(Request $request){ $this->validate($request,[ 'name' => 'required|max:120', 'email' => 'required|email|unique:users', 'phone' => 'required|min:11|numeric', ]); $user = new User(); $user->name= $request->Input(['name']); $user->email= $request->Input(['email']); $user->phone= $request->Input(['phone']); $user->save(); return redirect('success'); } وهذا هو الجزء الخاص برسائل الخطأ: @if(count($errors) > 0) <div class="row"> <div class="col-md-4 col-md-offset-4 error"> <ul> @foreach($errors->all() as $error) <li>{{$error}}</li> @endforeach </ul> </div> </div> @endif @if(Session::has('message')) <div class="row"> <div class="col-md-4 col-md--offset-4 success"> {{Session::get('message')}} </div> </div> @endif ومسارات التوجيه لدي بهذا الشكل: Route::group(['middleware' => 'web'], function () { Route::get('/', function () { return view('index'); })->name('main'); Route::post('/saveUser',[ 'uses' => 'AppController@saveUser', 'as'=>'saveUser', ]); }); ولكن لا تظهر رسائل الخطأ أبداً. كيف يمكنني حل هذه المشكلة؟ اقتباس
0 Sam Ahw نشر 18 مارس 2021 أرسل تقرير نشر 18 مارس 2021 يجب إزالة الوسيط web من مسار التوجيه، فلارافيل تقوم تلقائياً بإضافته ضمن app/Providers/RouteServiceProvider.php: protected function mapWebRoutes(Router $router) { $router->group([ 'namespace' => $this->namespace, 'middleware' => 'web', ], function ($router) { require app_path('Http/routes.php'); }); } أما إذا قمنا بشكل يدوي بإضافته فسيسبب مشاكل. ولإرسال الخطأ بعد التحقق يمكن عن طريق Redirect::back()->withErrors وإضافة الكود التالي في المتحكم لديك ليصبح: $validator = Validator::make($request->all(), [ 'fname' => 'required|max:20|min:4', 'uemail' => 'required|email', 'message' => 'required', ]); if ($validator->fails()) { $messages = $validator->messages(); return Redirect::back()->withErrors($messages)->withInput($request->all()); } ثم في صفحة blade يمكن استقبال أي خطأ كالتالي: @if ($errors->any()) <label for="fname" class="error">{{ $errors->first('fname') }}</label> @endif اقتباس
السؤال
Amir Alsaeed
أحاول إظهار رسائل خطأ للمستخدم عند إدخال قيم باستخدام التحقق validation في لارافيل، لقد قمت بإضافة الكود التالي في المتحكم:
public function saveUser(Request $request){ $this->validate($request,[ 'name' => 'required|max:120', 'email' => 'required|email|unique:users', 'phone' => 'required|min:11|numeric', ]); $user = new User(); $user->name= $request->Input(['name']); $user->email= $request->Input(['email']); $user->phone= $request->Input(['phone']); $user->save(); return redirect('success'); }
وهذا هو الجزء الخاص برسائل الخطأ:
ومسارات التوجيه لدي بهذا الشكل:
Route::group(['middleware' => 'web'], function () { Route::get('/', function () { return view('index'); })->name('main'); Route::post('/saveUser',[ 'uses' => 'AppController@saveUser', 'as'=>'saveUser', ]); });
ولكن لا تظهر رسائل الخطأ أبداً. كيف يمكنني حل هذه المشكلة؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.