Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException выдается с сообщением - PullRequest
0 голосов
/ 31 января 2020

Я получил эту ошибку, когда попытался создать программу crud на Laravel

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException Нет сообщения

мой код:

public function update(Request $request){
DB::table('berita')->where('id_berita',$request->id)->update([
    'judul' => $request->judul,
    'isi_berita' => $request->isi,
]);
return redirect('/berita');
}

Есть мои маршруты:

<?php
Route::get('/index', function () {
    return view('index');
});
Route::get('/', function () {
    return view('index');
});
Route::get('halo', function () {
    return "Halo, Selamat datang di Web Jurusan RPL SMKN 2 Subang";
});
//route CRUD
Route::get('/berita','InputController@index');
Route::get('/berita', function(){
    return view('berita');
});
Route::get('/galeri', function(){
    return view('galeri');
});
Route::get('/post-add', function(){
    return view('post-add');
});
Route::post('ckeditor/image_upload', 'CKEditorController@upload')->name('upload');
Route::get('/berita','InputController@index');
Route::post('/post-add/save','InputController@store');
Route::get('/berita/hapus/{id}','InputController@delete');
Route::get('/berita/edit/{id}','InputController@edit');
Route::get('/berita/update','InputController@update');
?>

и ниже приведен код моей формы:

<form action="/berita/update" method="post">
    {{ csrf_field() }}
    <label for="judul">Judul Berita</label>
    <input type="text" placeholder="Judul berita" class="input-judul" value="{{ $b->judul }}" autocomplete="off" name="judul">
    <label for="isi">Isi Berita</label>
    <textarea class="form-control" id="summary-ckeditor" name="isi">{{ $b->isi_berita }}</textarea>
    <input type="hidden" name="tanggal" value="<?php echo date('Y-m-d');?>">
    <input type="hidden" name="id_admin" value="{{ $b->id_admin }}">
    <input type="submit" value="Update" class="btn-btn-primary">
    </form>

Мне нужна ваша помощь.

Помогите мне чтобы решить это T_T

1 Ответ

0 голосов
/ 31 января 2020

У вас слишком много проблем с вашим кодом. Вы используете POST запрос из формы, но у вас есть маршрут с типом GET . Вы также не используете соглашение, согласно которому следует метод UPDATE . Лучше следовать рекомендациям при написании кода, чтобы генерировать меньше ошибок.

Правильный способ написать метод обновления таков:

public function update($id, Request $request)
{

}

У вас есть настройка маршрута, но вы используете GET метод с ним.

Route :: get ('/ berita / update', 'InputController@update'); Это неправильно

В вашем районе маршрута у вас должна быть запись, подобная этой:

Route::put('berita/{id}' , 'ControllerName@update');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...