Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 03.03.2019 03:29:27

form edit action

Всем привет! big_smile
Есть форма и ну никак не получается добиться экшена http://test.com/admin/room/9/edit

{{ Form::open(['url' => action('RoomController@update', $room->id), 'files' => true, 'method' => 'PATCH']) }}

. Я пробовал вручную вписывать путь, пробовал и через route(). Не понимаю в  чем проблема:(
Если просто добавить '/edit' , то после отправки формы я получу

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
No message

Не в сети

#2 03.03.2019 08:04:08

Re: form edit action

Попробуй так

{{ Form::open(['url' => action('route.update'), $room->id), 'files' => true, 'method' => 'PATCH']) }}

route - название твоего роута

Не в сети

#3 03.03.2019 10:40:09

Re: form edit action

Так я тоже пробовал. Просто мне нужно было на /admin/room/1/edit отправить форму в контроллер в update и если я отправлял его в контроллер, как я это делал, то логично, что ларавел отправлял его на /admin/room/1, а я вчера весь мозг сломал. Решил отправлять данные не во вью, а делать

return view('admin.room.edit', ['room' => $room]);//удалил
return redirect()->route('room.edit', [$room]);
 
PUT|PATCH | admin/room/{room}      | room.update  | App\Http\Controllers\RoomController@update  | web        |
DELETE    | admin/room/{room}      | room.destroy | App\Http\Controllers\RoomController@destroy | web        |
GET|HEAD  | admin/room/{room}/edit | room.edit    | App\Http\Controllers\RoomController@edit    | web

Не в сети

#4 04.03.2019 10:20:53

Re: form edit action

Покажи какой у тебя роут

Не в сети

#5 04.03.2019 19:30:08

Re: form edit action

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('index');
});

Route::get('/admin', function () {
    return view('admin.index');
})->name('admin');;

Route::resource('admin/room', 'RoomController');

Если что, сам сайт fomintimur.ru
а гит https://github.com/etosites/krim.house/ … ature/crud ветка feature/crud

Не в сети

#6 04.03.2019 19:40:29

Re: form edit action

А что это за метод у тебя - PATH - в форме? Должен быть PUT. А если версия laravel 5.7 и выше, то после тега формы напиши
@method('put')

В роуте

{{ Form::open(['url' => action('room.update', $room->id), 'files' => true, 'method' => 'PUT']) }}

или

{{ Form::open(['url' => action('admin/room.update', $room->id), 'files' => true, 'method' => 'PUT']) }}

Не в сети

#7 04.03.2019 19:44:50

Re: form edit action

Проблема даже не в методе. Проблема в том, что сессия создается каждый раз при обращении к сайту в любом месте. Нажал F5 новая сессия и т.д. Может есть какой-то определенный порядок переноса ларавел на хостинг?

Не в сети

#8 04.03.2019 19:47:26

Re: form edit action

Каким боком тут сессия? Ты же писал, что у тебя ошибка с методом

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
No message

Не в сети

#9 04.03.2019 19:53:57

Re: form edit action

Да, но проблема оказалась в другом месте. Из-за того, что сессия генерится все время новая, то и токен неправильный.
Когда я создавал тему я думал, что проблема в этом, но когда я перевел сессии в базу, то обнаружил, что эта проблема вытекает из-за сессий.
OPVNdlVuEZk.jpg
База создавалась с помощью artisan

Не в сети

#10 04.03.2019 22:23:10

Re: form edit action

Блин. Тему перепутал. Эта проблема решена.

Не в сети

Подвал раздела