Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Доброго дня всем
Есть страница с данными пользователя, попадают на нее методом POST. После обновления надо вернуться назад, но выдает ошибку. Я так думаю, что после обновления данных редирект на предыдущую страницу осуществляется уже методом GET. Подскажите, как это исправить.
Спасибо
Не в сети
Не в сети
Какой именно нужен код?
Вюха
{{ Form::open(['route' => ['update', 'id' => $data->id], 'method' => 'POST']) }}
<input type="hidden" name="id" value="{{ $data->id }}">
<input type="hidden" name="type" value="cha">
<div class="moto-widget-contact_form-group">
<input name="name" type="text" class="moto-widget-contact_form-field moto-widget-contact_form-input" value="{{ $data->name }}" placeholder="Имя"/>
</div>
<div class="moto-widget-contact_form-group">
<input name="address" type="text" class="moto-widget-contact_form-field moto-widget-contact_form-input" value="{{ $data->address }}" placeholder="Адрес"/>
</div>
<div class="moto-widget-contact_form-group">
<input name="city" type="text" class="moto-widget-contact_form-field moto-widget-contact_form-input" value="{{ $data->city }}" placeholder="Город"/>
</div>
<div class="moto-widget-contact_form-group">
<input name="zipcode" type="text" class="moto-widget-contact_form-field moto-widget-contact_form-input" value="{{ $data->zipcode }}" placeholder="Почтовый индекс"/>
</div>
<div class="moto-widget-contact_form-group">
<input name="phone" type="text" class="moto-widget-contact_form-field moto-widget-contact_form-input" value="{{ $data->phone }}" placeholder="Контактный телефон"/>
</div>
<div class="moto-widget-contact_form-buttons">
<div class="moto-widget moto-widget-button moto-preset-3">
<button type="submit" class="moto-widget-button-link moto-size-medium">
<span class="fa moto-widget-theme-icon"></span>
<span class="moto-widget-button-label">Сохранить данные</span>
</button>
</div>
</div>
{{ Form::close() }}
Контроллер
public function update(Request $request, $id){
$result = User::where('id', $id)->update(['name' => $request->name,
'address' => $request->address,
'city' => $request->city,
'zipcode' => $request->zipcode,
'phone' => $request->phone,
]);
if($result){
return redirect()->back()->with('status', 'Данные успешно обновлены');
}
Не в сети
Да, все так и происходит. Но я ж говорю, что на страницу с формой я попадаю методом POST. В браузере адрес выглядит так http://auto.loc/profile?name=User. Если даже не обновляя ее вручную написать User, то будет ошибка, вот такая
protected function methodNotAllowed(array $others)
{
throw new MethodNotAllowedHttpException($others);
}
public function get($method = null)
{
return is_null($method) ? $this->getRoutes() : Arr::get($this->routes, $method, []);
}
Это же происходит и после обновления. Вот я и подумал про POST и GET
Не в сети
Не в сети
Но тогда любой юзер, подставив в адресную строку имя, сможет редактировать данные
Не в сети
Подскажи, как это правильно сделать?
Не в сети
Ну так все зарегенные пользователи одним маршрутом заходят
Не в сети
Да, я неправильно делал - проверял по имени. Теперь разобрался, спасибо большое
Не в сети
Страницы 1