首页 > 解决方案 > Laravel - Session flash 没有显示错误信息的内容

问题描述

我在我的 Laravel-5.8 项目中使用 session flash。

控制器

<?php

namespace App\Http\Controllers\Appraisal;

use App\Http\Controllers\Controller;
use App\Models\Appraisal\AppraisalSkill;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Exception;
use Illuminate\Support\Facades\Validator;
use Session;

class AppraisalSkillsController extends Controller
{
  public function create()
  {
    abort_unless(\Gate::allows('skill_create'), 403);
    return view('appraisal.skills.create');
  }

  public function store(Request $request)
  {
    abort_unless(\Gate::allows('skill_create'), 403);

    $this->validate($request, [
        'skill_name' => 'required|unique:appraisal_skills,company_id',
    ]);

    $skill = AppraisalSkill::create([
        'skill_name'                => $request->skill_name,
        'description'               => $request->description,
        'company_id'                => Auth::user()->company_id,
        'created_by'                => Auth::user()->id,
        'created_at'                => date("Y-m-d H:i:s"),
        'is_active'                 => 1,
    ]);
    Session::flash('success', 'Appraisal Skill is created successfully');
    return redirect()->route('appraisal.skills.index');
  }
}

查看/partials/_messages.blade.php

@if (count($errors) > 0)
<div class="alert alert-danger alert-block" role="alert">   
    <button type="button" class="close" data-dismiss="alert">×</button>
        <strong>Errors: </strong>
        <ul>
            @foreach ($errors as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>

</div>
@endif

@if (Session::has('success'))
<div class="alert alert-success" role="alert">  
    <button type="button" class="close" data-dismiss="alert">×</button>
    <strong>Success: </strong>{{Session::get('success')}}
</div>
@endif

看法

<div class="container-fluid">  
    <div class="panel-heading clearfix">

        <div class="float-right">
                <div class="btn-group btn-group-sm" role="group">
                    <a href="{{ route("appraisal.skills.index") }}" class="btn bg-navy margin" title=" Back">
                        <span> Back to List</span>
                    </a>
                </div>
        </div>

    </div>
        <br>
        @include('partials._messages')
    <br>
  
<div class="card">
    <div class="card-header">
        Create Skill
    </div>

    <div class="card-body">
       <form  action="{{route('appraisal.skills.store')}}" method="post" class="form-horizontal" enctype="multipart/form-data">
           {{csrf_field()}}
                        <div class="form-body">
                            <div class="row">
                                <div class="col-md-6">
                                    <div class="form-group row">
                                        <label class="control-label text-right col-md-3">Skill Name<span style="color:red;">*</span></label>
                                        <div class="col-md-9 controls">
                                            <input  type="text" name="skill_name" placeholder="Enter skill name here" class="form-control" value="{{old('skill_name')}}">
                                        </div>
                                    </div>
                                </div>

                                <div class="col-md-6">
                                    <div class="form-group row">
                                        <label class="control-label text-right col-md-3">Description</label>
                                        <div class="col-md-9">
                                                <textarea rows="2" name="description" class="form-control" placeholder="Enter Description here" value="{{old('description')}}"></textarea>
                                        </div>
                                    </div>
                                </div>

                            </div>
                        </div>
          
            <div>
                &nbsp;&nbsp;&nbsp;<button type="submit" class="btn btn-primary">{{ trans('global.save') }}</button>
                <button type="button" onclick="window.location.href='{{route('appraisal.skills.index')}}'" class="btn btn-default">Cancel</button>
            </div>
        </form>
    </div>
    </div>
 </div>

当我点击保存提交按钮时,我希望如果有任何错误,它应该显示错误的详细信息。但是,它只显示错误: 没有详细信息。

成功消息有效,但错误消息未按预期工作

会话闪存消息

我该如何解决这个问题?

谢谢你。

标签: laravel

解决方案


循环错误时有一个小错误。将行更改@foreach ($errors as $error)@foreach ($errors->all() as $error)。它现在应该可以工作了!


推荐阅读