我对如何创建正确的表单以将用户添加到特定组感到失望。
首先,我打开一个表单,您可以在其中找到用于组的选择框和用于用户名的字段。
{!! Form::open(array('route'=>'create.invitation')) !!}
<div class="form-group">
{{Form::label('group', 'In welche Gruppe möchten Sie den User einladen?')}}
<select class="form-control" name="idgroup">
@foreach ($groups as $group)
<option value="{{ $group->id }}">{{ $group->name }}</option>
@endforeach
</select>
</p>
{{Form::label('username', 'Username')}}
{{Form::text('username', '', ['class' => 'form-control', 'placeholder' => 'Enter Username'])}}
{{ csrf_field() }}
</div>
<div>
{{Form::submit('Submit',['class' => 'btn btn-primary'])}}
<a class="btn btn-default btn-close" href="{{ route('home') }}">Cancel</a>
</div>
{!! Form::close() !!}
之后,我将验证组,尤其是用户名,因为必须检查此用户名是否确实存在于数据库中。
public function create(Request $request)
{
$request->validate([
'idgroup' => [
'required', 'numeric', new AdminGroupRequest, new MaxInvitationAdmin
],
'username' => [
'required', 'alpha_num', new ExistingUser, new UserNotAdmin
]
]);
$group = $request->idgroup;
$username = $request->username;
$user = User::where('name', $username)->select('id','name')->first();
return view('invitation.approval')->with('group', $group)->with('user', $user);
}
然后我返回一个视图,其中用户和组将再次显示给用户。这是用户可以验证其输入。 之后,我将通过提交将输入(用户和组ID)发送到将存储数据的存储功能。但是在此存储功能中,我必须再次验证组和名称,因为黑客可能会更改组和名称ID。但是对我来说,我所做的所有事情看起来都不是正确的。
任何人都可以给我提示如何在laravel中构建类似的东西。