Ich habe ein Formular in Laravel, in dem ich drei Textfelder basierend auf einem Kontrollkästchen validieren möchte. Es ist ein Edit-Benutzerformular, in dem ich nur das Passwort aktualisieren möchte, wenn ich ja wähle. Dies ist die Form meiner Meinung nach:Bedingte Validierung, wenn das Kontrollkästchen ausgewählt wurde laravel
<section>
<div class="form">
<h1>Edit: {!! $user->name !!}</h1>
{!! Form::model($user, ['method' => 'PATCH', 'action' => ['[email protected]', $user->id], 'files' => true]) !!}
<p>Name: {!! Form::text('name') !!}
<p>Email: {!! Form::text('email') !!}
<p>Update Password? (tick for yes) {!! Form::checkbox('updatepasswordcheck', 0, false) !!}
<p>Old Password: {!! Form::password('oldpassword') !!}
<p>New Password: {!! Form::password('newpassword') !!}
<p>New Password Confirm: {!! Form::password('newpasswordconfirm') !!}
@if($user->role_id == 1)
<p> User Role: {!! Form::select('user_type', ['admin', 'guest'], '1') !!}
@else
<p> User Role: {!! Form::select('user_type', ['admin', 'guest'], '0') !!}
@endif
<p>{!! Form::submit('Update') !!}
{!! Form::close() !!}
@include ('errors.list_errors')
</div>
</section>
ich dann eine Anforderung haben EditAccountRequest wie so genannt:
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
class EditAccountRequest 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()
{
if($this->inputs['updatepasswordcheck'])
{
$rules['oldpassword'] = 'required';
$rules['newpassword'] = 'required';
$rules['newpasswordconfirm'] = 'required';
}
$rules['name'] = 'required|min:3';
$rules['email'] = 'required|email';
return $rules;
}
}
Mein Problem ist, dass, wenn ich, ob das Kontrollkästchen ‚updatepasswordcheck‘ sehen wahr ist es nie funktioniert weil die Eingabe immer als Null erscheint. Weiß jemand, wie man das repariert?
Ich habe versucht, dies zu tun, und ich habe diesen Fehler: Ziel [App \ Http \ Requests \ Request] ist nicht instantiable. – Magearlik
Sie müssen Folgendes über Ihrer Klasse und unter dem Namespace "app \ Http \ Requests \ Request;" verwenden. – user2094178
Nein, das gibt immer noch einen Fehler, weil Sie innerhalb des Anfrageobjekts oder etwas sind – Magearlik