[路由:BatterFirst.update] [URI:BatterFirst/{BatterFirst}] [缺少参数:BatterFirst] 缺少必需的参数。 edit.blade.php)

Missing required parameter for [Route: BatterFirst.update] [URI: BatterFirst/{BatterFirst}] [Missing parameter: BatterFirst]. edit.blade.php)

当我在做 laravel CRUD 项目时,我得到了 .我在这里停留了 2 天

Illuminate\Routing\Exceptions\UrlGenerationException [路由:BatterFirst.update] [URI:BatterFirst/{BatterFirst}] [缺少参数:BatterFirst] 缺少必需参数。 (查看:C:\xampp\htdocs\CricBangla\resources\views\BatterFirst\edit.blade.php)错误。

我找不到错误所在。

这是我的 web.php

Route::resource('BatterFirst', BatterFirstController::class);

这是我的模型BatterFirst.php

class BatterFirst extends Model
{
    use HasFactory;
    protected $table = 'batterfirst';

    protected $fillable = [
        'name', 'runs', 'balls', 'sixs', 'fours'
    ];
}

这是我的BatterFirstController.php

<?php

namespace App\Http\Controllers;

use App\Models\BatterFirst;
use Illuminate\Http\Request;

class BatterFirstController extends Controller
{
    public function index()
    {
        $data = BatterFirst::latest()->paginate(5);

        return view('BatterFirst.index',compact('data'))
            ->with('i', (request()->input('page', 1) - 1) * 5);
    }

    public function create()
    {
        return view('BatterFirst.create');
    }

    public function store(Request $request)
    {
        $request->validate([
            'name' => 'required',
            'runs' => 'required',
            'balls' => 'required',
            'sixs' => 'required',
            'fours' => 'required',
        ]);

        BatterFirst::create($request->all());

        return redirect()->route('BatterFirst.index')
                        ->with('success','Batter created successfully.');
    }

    public function show(BatterFirst $batterFirst)
    {
        return view('BatterFirst.show',compact('batterFirst'));
    }

    public function edit(BatterFirst $batterFirst)
    {
        return view('BatterFirst.edit',compact('batterFirst'));
    }

    public function update(Request $request, BatterFirst $batterFirst)
    {
        $request->validate([
            'name' => 'required',
            'runs' => 'required',
            'balls' => 'required',
            'sixs' => 'required',
            'fours' => 'required',
        ]);

        $batterFirst->update($request->all());

        return redirect()->route('BatterFirst.index')
                        ->with('success','Batter updated successfully');
    }

    public function destroy(BatterFirst $batterFirst)
    {
        $batterFirst->delete();

        return redirect()->route('BatterFirst.index')
                        ->with('success','Batter deleted successfully');
    }
}

这是我的编辑。blade.php

@extends('BatterFirst.layout')

@section('content')
    <div class="row">
        <div class="col-lg-12 margin-tb">
            <div class="pull-left">
                <h2>Edit Product</h2>
            </div>
            <div class="pull-right">
                <a class="btn btn-primary" href="{{ route('BatterFirst.index') }}"> Back</a>
            </div>
        </div>
    </div>

    @if ($errors->any())
        <div class="alert alert-danger">
            <strong>Whoops!</strong> There were some problems with your input.<br><br>
            <ul>
                @foreach ($errors->all() as $error)
                    <li>{{ $error }}</li>
                @endforeach
            </ul>
        </div>
    @endif

    <form action="{{ route('BatterFirst.update',$batterFirst->id) }}" method="POST">
        @csrf
        @method('PUT')

        <div class="row">
            <div class="col-xs-12 col-sm-12 col-md-12">
                <div class="form-group">
                    <strong>Name:</strong>
                    <input type="text" name="name" value="{{ $batterFirst->name }}" class="form-control" placeholder="name">
                </div>
            </div>
            <div class="col-xs-12 col-sm-12 col-md-12">
                <div class="form-group">
                    <strong>Runs:</strong>
                    <input type="number" name="runs" value="{{ $batterFirst->runs }}" class="form-control" placeholder="runs">                </div>
            </div>
            <div class="col-xs-12 col-sm-12 col-md-12">
                <div class="form-group">
                    <strong>Balls:</strong>
                    <input type="number" name="balls" value="{{ $batterFirst->balls }}" class="form-control" placeholder="balls">                </div>
            </div>
            <div class="col-xs-12 col-sm-12 col-md-12">
                <div class="form-group">
                    <strong>Sixs:</strong>
                    <input type="number" name="sixs" value="{{ $batterFirst->runs }}" class="form-control" placeholder="sixs">                </div>
            </div>
            <div class="col-xs-12 col-sm-12 col-md-12">
                <div class="form-group">
                    <strong>Fours:</strong>
                    <input type="number" name="fours" value="{{ $batterFirst->fours }}" class="form-control" placeholder="fours">                </div>
            </div>
            <div class="col-xs-12 col-sm-12 col-md-12 text-center">
              <button type="submit" class="btn btn-primary">Submit</button>
            </div>
        </div>

    </form>
@endsection

In this image when i click delete button it showing Batter delete successfully but not deleting Batter

这是我的索引。blade.php


@extends('BatterFirst.layout')

@section('content')
    <div class="row" style="margin-top: 5rem;">
        <div class="col-lg-12 margin-tb">
            <div class="pull-left">
                <h2>Laravel 8 CRUD Example from scratch - laravelcode.com</h2>
            </div>
            <div class="pull-right">
                <a class="btn btn-success" href="{{ route('BatterFirst.create') }}"> Create New Post</a>
            </div>
        </div>
    </div>

    @if ($message = Session::get('success'))
        <div class="alert alert-success">
            <p>{{ $message }}</p>
        </div>
    @endif

    <table class="table table-bordered">
        <tr>
            <th>No</th>
            <th>Name</th>
            <th>Runs</th>
            <th>Balls</th>
            <th>Sixs</th>
            <th>Fours</th>
            <th>Strick Rate</th>
        </tr>
        @foreach ($data as $key => $value)
        <tr>
            <td>{{ ++$i }}</td>
            <td>{{ $value->name }}</td>
            <td>{{ $value->runs }}</td>
            <td>{{ $value->balls }}</td>
            <td>{{ $value->sixs }}</td>
            <td>{{ $value->fours }}</td>
            {{-- <td>{{ $value->runs/$value->balls*100 }}</td> --}}
            <td>@if ($value->runs > 0 and $value->runs ==0)
                    {{ $value->runs*100 }}
                @elseif ($value->balls>0 and $value->runs ==0)
                    {{ $value->balls*$value->runs }}
                @elseif ($value->balls==0 and $value->runs ==0)
                    {{ $value->balls *  $value->runs }}
                @elseif ($value->runs>0 and $value->balls>=0)
                    {{ $value->runs/$value->balls*100 }}
                @endif
            </td>
            <td>
                <form action="{{ route('BatterFirst.destroy',$value->id) }}" method="POST">
                    <a class="btn btn-info" href="{{ route('BatterFirst.show',$value->id) }}">Show</a>
                    <a class="btn btn-primary" href="{{ route('BatterFirst.edit',$value->id) }}">Edit</a>
                    @csrf
                    @method('DELETE')
                    <button type="submit" class="btn btn-danger">Delete</button>
                </form>
            </td>
        </tr>
        @endforeach
    </table>
    {!! $data->links() !!}
@endsection

注:刚开始学习laravel。谢谢

尝试删除方法POST。更新将使用 PUT 作为方法。

  <form action="{{ route('BatterFirst.update',$batterFirst->id) }}" method="POST">
        @csrf
        @method('PUT')

然后在你的路由函数中改变这个。在数组中传递 id。

"{{route('BatterFirst.update',['id' => $batterFirst->id])}}" 

然后会这样:

  <form action="{{ route('BatterFirst.update',['id' => $batterFirst->id]) }}" method="PUT">
        @csrf
        @method('PUT')

CZ table 和型号、文件夹

的命名错误