Laravel Controller verwendet ValidatesRequests
Eigenschaft, die eine validate
Methode bereitstellt. Hier ist Beispiel dafür, wie eine Anforderung zu validieren:
namespace App\Http\Controllers;
class MyController extends Controller
{
public function store(Request $request)
{
$this->validate($request, [
'subject' => 'required|max:255',
'message' => 'required',
]);
// All input is valid, do your task.
}
}
Wenn Benutzereingaben nicht die Regeln des $this->validate()
nicht passieren wird er automatisch Ihre Benutzer zurück in die Formularansicht mit altem Eingang und Fehlern umleiten werden. Die Fehler werden durch $errors
variabel gehalten, die eine Instanz von Illuminate\Support\MessageBag
ist, es auf Ihrer Ansicht anzuzeigen:
@if (count($errors) > 0)
<div class="error">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
Oder Sie können durch Schlüsselfehlermeldung erhalten:
@if($errors->has('subject'))
{{ $errors->first('subject');}} // Printed: Subject field is required.
@endif
Zur Beantwortung Ihrer Frage, wie zu Anzeigefehler wie in CI Sie toArray()
Methode von Illuminate\Support\MessageBag
verwenden können:
$errors->toArray()
Manuelle Validierung
Sie können auch Validator-Instanz manuell mit der Validator
Fassade wie folgt verwenden:
namespace App\Http\Controllers;
use Validator;
class MyController extends Controller
{
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'subject' => 'required|max:255',
'message' => 'required',
]);
if ($validator->fails()) {
return redirect('your-form-uri')->withErrors($validator)->withInput();
}
// All input is valid, do your task.
}
}
Wieder Sie die Fehler von $errors
Variable wie oben erhalten.
Formular anfordern Validation
diese Methode zu verwenden, können Sie durch die Schaffung eines Formularvalidierung Anforderung mit artisan
CLI starten:
php artisan make:request ContactRequest
Es schaffen Sie eine ContactRequest
Klasse, können Sie es in app/Http/Request/
finden Mappe.
namespace App\Http\Requests;
use App\Http\Requests\Request;
class ContactRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'subject' => 'required|max:225',
'message' => 'required',
];
}
}
Auf dem Controller-Methode Variable statt Request $request
verwenden können Sie ContactRequest $request
verwenden:
namespace App\Http\Controllers;
use App\Http\Requests\ContactRequest;
class MyController extends Controller
{
public function store(ContactRequest $request)
{
// All input is valid, do your task.
}
}
Wenn eine Benutzereingabe gelangt wird es weiterhin den Code auf dieser Methode auszuführen andernfalls Benutzer zurück umgeleitet zu bilden Ansicht, und natürlich können Sie die Fehler wie oben zwei Methode anzeigen.
Ich mache das schon. In dieser Methode, der Array-Index sind 1,2, ... Ich brauche den Formular-Element-Namen als Array-Index/Schlüssel – Arun
Verwendung mit ('Schlüssel' => 'Nachricht') –