Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем привет!
Есть форма и ну никак не получается добиться экшена 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
Не в сети
Попробуй так
{{ Form::open(['url' => action('route.update'), $room->id), 'files' => true, 'method' => 'PATCH']) }}
route - название твоего роута
Не в сети
Так я тоже пробовал. Просто мне нужно было на /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
Не в сети
Покажи какой у тебя роут
Не в сети
<?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
Не в сети
А что это за метод у тебя - 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']) }}
Не в сети
Проблема даже не в методе. Проблема в том, что сессия создается каждый раз при обращении к сайту в любом месте. Нажал F5 новая сессия и т.д. Может есть какой-то определенный порядок переноса ларавел на хостинг?
Не в сети
Каким боком тут сессия? Ты же писал, что у тебя ошибка с методом
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
No message
Не в сети
Да, но проблема оказалась в другом месте. Из-за того, что сессия генерится все время новая, то и токен неправильный.
Когда я создавал тему я думал, что проблема в этом, но когда я перевел сессии в базу, то обнаружил, что эта проблема вытекает из-за сессий.
База создавалась с помощью artisan
Не в сети
Блин. Тему перепутал. Эта проблема решена.
Не в сети
Страницы 1