2017-03-08 63 views
0

我現在正在使用全新的Laravel 5.4安裝,並且我還安裝了https://github.com/appzcoder/crud-generator。我使用生成器生成了Tickets CRUD。我能夠將「票據」表發佈到「php artisan migrate」的mysql數據庫中

我目前卡住試圖使$ errors顯示,如果有一個文本輸入缺少輸入。

TicketsController.php

<?php 

namespace App\Http\Controllers\Users; 

use App\Http\Requests; 
use App\Http\Controllers\Controller; 

use App\Ticket; 
use Illuminate\Http\Request; 
use Session; 

class TicketsController extends Controller 
{ 
    /** 
    * Display a listing of the resource. 
    * 
    * @return \Illuminate\View\View 
    */ 
    public function index(Request $request) 
    { 
     $keyword = $request->get('search'); 
     $perPage = 25; 

     if (!empty($keyword)) { 
      $tickets = Ticket::where('user_id', 'LIKE', "%$keyword%") 
       ->orWhere('subject', 'LIKE', "%$keyword%") 
       ->orWhere('description', 'LIKE', "%$keyword%") 

       ->paginate($perPage); 
     } else { 
      $tickets = Ticket::paginate($perPage); 
     } 

     return view('user.tickets.index', compact('tickets')); 
    } 

    /** 
    * Show the form for creating a new resource. 
    * 
    * @return \Illuminate\View\View 
    */ 
    public function create() 
    { 
     return view('user.tickets.create'); 
    } 

    /** 
    * Store a newly created resource in storage. 
    * 
    * @param \Illuminate\Http\Request $request 
    * 
    * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector 
    */ 
    public function store(Request $request) 
    { 

     $requestData = $request->all(); 

     Ticket::create($requestData); 

     Session::flash('flash_message', 'Ticket added!'); 

     return redirect('tickets'); 
    } 


} 

查看

 <div class="panel panel-default"> 
      <div class="panel-heading">Create New Ticket</div> 
      <div class="panel-body"> 
       <a href="{{ url('/tickets') }}" title="Back"><button class="btn btn-warning btn-xs"><i class="fa fa-arrow-left" aria-hidden="true"></i> Back</button></a> 
       <br /> 
       <br /> 

       @if ($errors->any()) 
        <ul class="alert alert-danger"> 
         @foreach ($errors->all() as $error) 
          <li>{{ $error }}</li> 
         @endforeach 
        </ul> 
       @endif 

       {!! Form::open(['url' => '/tickets', 'class' => 'form-horizontal', 'files' => true]) !!} 

       @include ('user.tickets.form') 

       {!! Form::close() !!} 

      </div> 
     </div> 

form.blade.php

<div class="form-group {{ $errors->has('user_id') ? 'has-error' : ''}}"> 
    {!! Form::label('user_id', 'User Id', ['class' => 'col-md-4 control-label']) !!} 
    <div class="col-md-6"> 
     {!! Form::number('user_id', null, ['class' => 'form-control']) !!} 
     {!! $errors->first('user_id', '<p class="help-block">:message</p>') !!} 
    </div> 
</div><div class="form-group {{ $errors->has('subject') ? 'has-error' : ''}}"> 
    {!! Form::label('subject', 'Subject', ['class' => 'col-md-4 control-label']) !!} 
    <div class="col-md-6"> 
     {!! Form::text('subject', null, ['class' => 'form-control']) !!} 
     {!! $errors->first('subject', '<p class="help-block">:message</p>') !!} 
    </div> 
</div><div class="form-group {{ $errors->has('description') ? 'has-error' : ''}}"> 
    {!! Form::label('description', 'Description', ['class' => 'col-md-4 control-label']) !!} 
    <div class="col-md-6"> 
     {!! Form::text('description', null, ['class' => 'form-control']) !!} 
     {!! $errors->first('description', '<p class="help-block">:message</p>') !!} 
    </div> 
</div> 

<div class="form-group"> 
    <div class="col-md-offset-4 col-md-4"> 
     {!! Form::submit(isset($submitButtonText) ? $submitButtonText : 'Create', ['class' => 'btn btn-primary']) !!} 
    </div> 
</div> 

如果不輸入ŧ他主題文本輸入,我提示頁面錯誤:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'subject' cannot be null (SQL: insert into `tickets` (`user_id`, `subject`, `description`, `updated_at`, `created_at`) values (1, , dsa, 2017-03-08 13:05:22, 2017-03-08 13:05:22)) 

,而不是$錯誤功能

我是否需要在我的TicketsController的東西嗎?和中間件?

任何幫助表示讚賞。

回答

0

對於此工作過,

$this->validate($request, [ 
    'subject' => 'required', 
]); 

寫在上面操作方法的代碼,然後檢查。

這裏是你如何可以預製棒validation in laravel