-1

I got error Missing required parameter for [Route: battersecondinnings.update] [URI: battersecondinnings/{battersecondinning}] [Missing parameter: battersecondinning]. (View: C:\xampp\htdocs\ContentBaseApp - 1.0.2\resources\views\battersecondinnings\edit.blade.php)

This is my C:\xampp\htdocs\ContentBaseApp - 1.0.2\resources\views\battersecondinnings\edit.blade.php

@extends('layouts.app')

@section('content')
    <div class="row">
        <div class="col-lg-12 margin-tb">
            <div class="pull-left">
                <h2>Edit Batter</h2>
            </div>
            <div class="pull-right">
                <a class="btn btn-primary" href="{{ route('battersecondinnings.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('battersecondinnings.update', $battersecondinnings->id) }}" method="POST" enctype="multipart/form-data">
        @csrf
        @method('PUT')

        <div class="row">
            <div class="form-group row">
                <div class="col-md-6">
                    <strong>ব্যাটসম্যান:</strong>
                    <input type="text" name="name" value="{{ $battersecondinnings->name }}" class="form-control" placeholder="ব্যাটসম্যান">
                </div>
            </div>
            <div class="form-group row">
                <div class="col-md-6">
                    <strong>রান:</strong>
                    <input type="number" name="runs" value="{{ $battersecondinnings->runs }}" class="form-control" placeholder="রান">
                </div>
            </div>
            <div class="form-group row">
                <div class="col-md-6">
                    <strong>বল:</strong>
                    <input type="number" name="balls" value="{{ $battersecondinnings->balls }}" class="form-control" placeholder="বল">
                </div>
            </div>
            <div class="form-group row">
                <div class="col-md-6">
                    <strong>ছক্কা:</strong>
                    <input type="number" name="sixs" value="{{ $battersecondinnings->sixs }}" class="form-control" placeholder="ছক্কা">
                </div>
            </div>
            <div class="form-group row">
                <div class="col-md-6">
                    <strong>চার:</strong>
                    <input type="number" name="fours" value="{{ $battersecondinnings->fours }}" class="form-control" placeholder="চার">
                </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

This is my BattersecondiningsController.php

public function edit(Battersecondinnings $battersecondinnings)
    {
        return view('battersecondinnings.edit',compact('battersecondinnings'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\Battersecondinnings  $battersecondinnings
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Battersecondinnings $battersecondinnings)
    {
        $request->validate([
            'name' => 'required',
            'runs' => 'required',
            'balls' => 'required',
            'sixs' => 'required',
            'fours' => 'required',
        ]);
        $battersecondinnings->update($request->all());

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

But same things is working in products/edit.blade.php

<form action="{{ route('products.update', $product->id) }}" method="POST" enctype="multipart/form-data">
        @csrf
        @method('PUT')

This is ProductController.php

public function edit(Product $product)
    {
        return view('products.edit',compact('product'));
    }
    public function update(Request $request, Product $product)
    {

        $request->validate([
            'name' => 'required',
            'runs' => 'required',
            'balls' => 'required',
            'sixs' => 'required',
            'fours' => 'required',
        ]);
        $product->update($request->all());

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

This is web.php

Route::resource('battersecondinnings', BattersecondinningsController::class);
Shahed Khan
  • 67
  • 11
  • Show us The route file web.php. – Ahmed Ali Nov 19 '21 at 07:29
  • check the update – Shahed Khan Nov 19 '21 at 09:07
  • Did you try checking the docs? `route('battersecondinnings.update', $battersecondinnings->id)` is not [the correct syntax to pass a parameter to a named route](https://laravel.com/docs/8.x/routing#generating-urls-to-named-routes). Try `route('battersecondinnings.update', ['battersecondinning' => $battersecondinnings->id])`. There are many duplicates here if you search for your error msg. – Don't Panic Nov 19 '21 at 11:01
  • Does this answer your question? [Laravel 8: Missing required parameter for \[Route: edit.question\] \[URI: editquestion/{question}\] \[Missing parameter: question\]](https://stackoverflow.com/questions/66578304/laravel-8-missing-required-parameter-for-route-edit-question-uri-editquest) – Don't Panic Nov 19 '21 at 11:02

1 Answers1

0

In the Route 'battersecondinnings.update' what is missing is enctype="multipart/form-data". Add it and try again. Please ckeck this answer in stackoverflow multipart/form-data meaning

Tinxuanna
  • 206
  • 1
  • 3
  • 16
  • it doesn't matter its still same error – Shahed Khan Nov 19 '21 at 07:17
  • When you put {} around some text, you are binding some parameter (actually Eloquent Model), and you should provide it (provide the ID) when you call the route. I mean in the uri = URI: battersecondinnings/{battersecondinning} Let's check: [Laravel Docs](https://laravel.com/docs/8.x/routing#route-model-binding) – Tinxuanna Nov 19 '21 at 07:38