2016-08-06 15 views
0

Ich versuche, eine Validierungsregel in meine Anfrage zu setzen, so dass names eindeutig years in Laravel 5.2 sein wird.Laravel Validation Eindeutige Werte in der Spalte für eine andere

Bisher habe ich dies für die Anfrage:

<?php 

namespace App\Http\Requests; 
use Auth; 
use App\Http\Requests\Request; 

class AwardeeRequest extends Request 
{ 
    public function rules() 
    { 
     return [ 
      'name'=>'required', 
      'year'=>'required', 
     ]; 
    } 
} 

Und mein Controller:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Awardee; 
use App\Http\Requests; 

class AwardeeController extends Controller 
{ 
. 
. 
    public function store(Requests\AwardeeRequest $request) 
    { 
     $this->validate($request, [ 
      'name' => 'unique:awardee,name,NULL,year,year,' .$request->get('year'), 
     ]); 

     return redirect(route('awardees.index')); 
    } 

    public function update(Requests\AwardeeRequest $request, $id) 
    { 
     $awardee = Awardee::findOrFail($id); 
     $this->validate($request, [ 
      'name' => 'unique:awardee,name,NULL,year,year,' .$request->get('year').',id,id,'.$awardee->id, 
     ]); 
     $awardee->fill($request->all())->save(); 

     return redirect(route('awardees.index')); 
    } 

} 

Ich habe versucht, was hier vorgeschlagen wurde: Laravel 4: Unique Validation for Multiple Columns aber es funktioniert nicht, wenn ich das Jahr aktualisieren.

Antwort

0

Es stellte sich heraus, dass ich es überlegte.

Hier ist der endgültige Code. Ich habe die Validierung zurück in die Anforderungsregeln verschoben.

<?php 

namespace App\Http\Requests; 
use Auth; 
use App\Http\Requests\Request; 

class AwardeeRequest extends Request 
{ 
    public function rules() 
    { 
     return [ 
      'year'=>'required', 
      'name'=>'required|unique:awardee,name,'.$this->get('id').',year,year,' .$this->get('year'), 
     ]; 
    } 
}