У меня есть ресурс пользователя, связанный в таблице users
.Пользователь Редактировать Ресурс не работает
Мой маршрут:
Route::resource('user', 'UserController');
UserController.php
public function edit($id)
{
$user = User::find($id);
return view('user.edit')->with(array('user'=>$user));
}
public function update(Request $request, $id)
{
$rules = array(
'name' => 'required',
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails())
{
return Redirect::to('user/'.$id.'/edit')->withInput()->withErrors($validator);
}
}
И мой взгляд
{!! Form::model($user, array('route' => array('user.update', $user->id), 'method' => 'PUT', 'class' => 'form-horizontal')) !!}
@if (count($errors) > 0)
<div class="alert alert-danger">
<strong>Whoops!</strong> There were some problems with your input.<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="flash-message">
@foreach (['danger', 'warning', 'success', 'info'] as $msg)
@if(Session::has('alert-' . $msg))
<p class="alert alert-{{ $msg }}">{{ Session::get('alert-' . $msg) }}</p>
@endif
@endforeach
</div>
<div class="form-group"><label class="col-sm-2 control-label">Name</label>
<div class="col-sm-10"><input type="text" name="name" id="name" value="{{$user->name}}" class="form-control"></div>
</div>
<div class="form-group"><label class="col-sm-2 control-label">ID Number</label>
<div class="col-sm-10"><input type="text" name="id_number" id="id_number" value="{{$user->id_number}}" class="form-control"></div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group">
<div class="col-sm-4 col-sm-offset-2">
<button class="btn btn-primary" type="submit">Save changes</button>
</div>
</div>
{!! Form::close() !!}
Так что с этой установкой я ожидаю, что когда нажмите кнопку отправки на моей страничке войдет в функцию update()
так же, как и мой другой ресурс. Но проблема в том, когда я нажму кнопку Отправить, он направит меня к
http://localhost/hrs/public/user/1
и белая пустая страница без каких-либо ошибок. Значит, это будет моя функция update
? Я следую той же схеме с моим другим ресурсом, и это единственный, кто не работает.
Возможно, вы просто не получили ошибку проверки? Этот url - правильный путь для метода 'update', поэтому я думаю, что все работает отлично. Попробуйте поместить 'dd ('here')' в ваш метод 'update'. Уверен, вы увидите 'здесь' :) –
@ GiedriusKiršys Спасибо за предложение. Я, наконец, знаю, что происходит. haha запрос выполняется после отказа валидатора. Поскольку у меня нет другой части, он ничего не сделает haha – jackhammer013