路由 produk/index 不支持 GET 方法。支持的方法:POST

问题描述 投票:0回答:1

我的错误

路由 produk/index 不支持 GET 方法。支持的方法:POST。

   Route::post('/produk/index', [ProdukController::class,'index'])->name('produk.index');

web.php

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\LoginController;
use App\Http\Controllers\ProdukController;
use App\Http\Controllers\SupplierController;


/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/

Route::get('/home', function () {
    return view('partials/main');})->middleware('auth');


Route::get('/login', [LoginController::class, 'index'])->name('login')->middleware('guest');
Route::post('/login', [LoginController::class, 'authenticate']);
Route::get('/logout', [LoginController::class, 'logout']);

    Route::get('/produk/data', [ProdukController::class, 'show'])->name('produk.data');
    Route::post('/produk/index', [ProdukController::class,'index'])->name('produk.index');
    Route::get('/supplier/data', [SupplierController::class, 'index'])->name('supplier.data');

控制器

ProdukController.php

<?php

namespace App\Http\Controllers;

use App\Models\Produk;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;

class ProdukController extends Controller
{
    public function show() {

    return view('kategori.kategori');
    }
    public function index(Request $request)
    {
        // dd($request);
        $ValidateData = $request->validate([
        'nama_produk' => ['required','max:255'],
        'harga_beli' => ['required'],
        'harga_jual' => ['required'],
        'stok' => ['required']

    ]);
    Produk::create($ValidateData);

        return view('kategori.index')->with('succes');
    }
};

浏览量

index.blade.php

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.css">
    <link rel="stylesheet" href="{{ asset('css/bootstrap.min.css') }}">
    <link rel="stylesheet" href="{{ asset('css/style.css') }}">

    <title>Form Produk</title>
  </head>
  <body>
    {{-- @foreach ($produks as $produk ) --}}

    {{-- @endforeach --}}
      <div class="col-6 mx-auto">
        <div class="container bg-white">
                     <form action="/produk/index" method="POST">
                @csrf
        <div class="mb-3">
            <label for="exampleFormControlInput1" class="form-label">Nama Produk</label>
            <input class="form-control" name="nama_produk" id="exampleFormControlInput1" placeholder="nama produk">
          </div>
        <div class="mb-3">
            <label for="exampleFormControlInput1" class="form-label">Harga Beli</label>
            <input class="form-control" name="harga_beli" id="exampleFormControlInput1" placeholder="harga beli">
          </div>
        <div class="mb-3">
            <label for="exampleFormControlInput1" class="form-label">Harga Jual</label>
            <input class="form-control" name="harga_jual" id="exampleFormControlInput1" placeholder="harga jual">
          </div>

        <div class="mb-2">
            <label for="exampleFormControlInput1" class="form-label">Stok</label>
            <input class="form-control" name="stok" id="exampleFormControlInput1" placeholder="stok">
          </div>
          <button onclick="" class="btn btn-success mt-3 mx-auto mb-3 text-center" type="submit"><i class="bi bi-plus-lg"></i> Tambah</button>
        </form>
        </div>
        </div>


    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-cVKIPhGWiC2Al4u+LWgxfKTRIcfu0JTxR+EQDz/bgldoEyl4H0zUF0QKbrJ0EcQF" crossorigin="anonymous"></script>

  </body>
</html>
  </body>
</html>

帮助我解决这个错误

php laravel laravel-8 laravel-blade
1个回答
0
投票

这是因为你的索引的路由写的是POST,请改用GET。

   Route::get('/produk/index', [ProdukController::class,'index'])->name('produk.index');

为了存储您的产品,我建议创建一个 store 方法。这意味着代码如下所示:

   Route::get('/produk/index', [ProdukController::class,'index'])->name('produk.index');
   Route::post('/produk/store', [ProdukController::class,'store'])->name('produk.store');
    public function index(Request $request)
    {
        return view('kategori.index');
    }

    public function store(Request $request)
    {
        // dd($request);
        $ValidateData = $request->validate([
            'nama_produk' => ['required','max:255'],
            'harga_beli' => ['required'],
            'harga_jual' => ['required'],
            'stok' => ['required']
        ]);
        Produk::create($ValidateData);

        return redirect()->route('kategori.index')->with('succes');
    }

然后在你的index.blade.php中,更改

<form action="/produk/index" method="POST">

<form action="{{route(produk.store)}}" method="POST">
© www.soinside.com 2019 - 2024. All rights reserved.