У меня проблема с выводом сообщения об ошибке.Вывод сообщения об ошибке всегда отображается ранее, а не в текущем.
Это мой вид, с которого я начинаю с ввода имени пользователя.
Маршрут ...
Route::get('invitation', 'UsernameController@search')->name('search.username');
Функция UsernameController ...
public function search()
{
return view('invitation.username');
}
Просмотр ...
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Eingabe Username der zu einer Gruppe eingeladen werden soll.</div>
<div class="panel-body">
@if(@count(errors > 0))
@foreach($errors->all() as $error)
<div class="alert alert-danger">
{{$error}}
</div>
@endforeach
@endif
{!! Form::open(array('route'=>'result.username')) !!}
<div class="form-group">
{{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() !!}
</div>
</div>
</div>
</div>
Здесь я пишу имя пользователя, и после нажатия кнопки «Отправить» откроется следующий вид.,Маршрут ...
Route::post('invitation', 'UsernameController@result')->name('result.username');
Функция UsernameController ...
public function result(Request $request)
{
$request->validate([
'username' => [
'required', 'alpha_num', new ExistingUser, new UserNotAdmin
]
]);
$username = $request->username;
$user = User::where('name', $username)->select('id')->first();
$user = User::where('id', $user->id)->select('id', 'name')->first();
$groups = Group::where('admin', Auth::id())->select('id','name')->get();
return view('invitation.group')->with('groups', $groups)->with('user', $user);
}
Просмотр ...
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">In welche Gruppe wollen sie den User {{$user->name}} einladen?</div>
<div class="panel-body">
@if(@count(errors > 0))
@foreach($errors->all() as $error)
<div class="alert alert-danger">
{{$error}}
</div>
@endforeach
@endif
{!! Form::open(array('route'=>'store.invitation')) !!}
<div class="form-group">
<input type="hidden" name="iduser" value="{{ $user->id }} "/>
<select class="form-control" name="idgroup">
@foreach ($groups as $group)
<option value="{{ $group->id }}">{{ $group->name }}</option>
@endforeach
</select>
{{ csrf_field() }}
</div>
<div>
{{Form::submit('User einladen',['class' => 'btn btn-primary'])}}
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</div>
Когда я нажимаю Отправить и сообщение об ошибке / проверкепроисходит для маршрута store.invitation, он не будет отображаться во втором представлении представления (приглашение. группа), он будет отображаться в первом представлении (приглашение. имя пользователя).
Вот функция, которая проверяет, должно ли отображаться сообщение об ошибке / проверке.
Маршрут ...
Route::post('invitation/store', 'InvitationController@store')->name('store.invitation');
Функция InvitationController ...
public function store(Request $request)
{
$request->validate([
'idgroup' => [
'required', 'numeric', new AdminGroupRequest, new MaxInvitationAdmin
],
'iduser' => [
'required', 'numeric', new AlreadyInvitation, new AlreadyPartOfGroup, new MaxInvitationUser
]
]);
$iduser = $request->iduser;
$idgroup = $request->idgroup;
$i = new Invitation;
$i->idgroup = $idgroup;
$i->iduser = $iduser;
$i->active = 1;
$i->save();
$username = User::where('id', $iduser)->select('name')->first();
$groupname = Group::where('id', $idgroup)->select('name')->first();
return redirect()->action(
'UsernameController@search')->with('success', 'Sie haben den User ' .$username->name. ' in die Gruppe ' .$groupname->name. ' eingeladen.');
}
Что не так с моей функцией или, возможно, маршрутизация не совсем верна?