Tonye Boro
Tonye Boro

Reputation: 313

Route [admin/update] not defined in Laravel

I am having trouble updating my data in Laravel and this is giving me headache. Every time i clicked on the update button error occurs.

Below is the error:

"Route [admin/update] not defined. (View: C:\xampp\htdocs\Tailor\core\resources\views\expensesCat\edit.blade.php)"

here is the edit.blade

<div class="portlet light bordered">
    <h3 class="page-title">Expenses Categories</h3>

   {!! Form::model($expenses_category, ['method' => 'POST', 'route' => ['admin/update', $expenses_category->id]]) !!}

    <div class="panel panel-default">
        <div class="panel-heading">
            Edit
        </div>

        <div class="panel-body">
            <div class="row">
                <div class="col-xs-12 form-group">
                <input name="order_create_by" type="hidden" value="{{ Auth::user()->id }}">
                    {!! Form::label('name', 'Name*', ['class' => 'control-label']) !!}
                    {!! Form::text('name', old('name'), ['class' => 'form-control', 'placeholder' => '']) !!}
                    <p class="help-block"></p>
                    @if($errors->has('name'))
                        <p class="help-block">
                            {{ $errors->first('name') }}
                        </p>
                    @endif
                </div>
            </div>

        </div>
    </div>

The web.php

Route::post('/update/{id}', 'ExpensesCategoriesController@updateCat');

The ExpensesCategoriesController

 public function updateCat(UpdateExpensesCategoriesRequest $request, $id)
    {
        $expenses_category = ExpensesCategory::findOrFail($id);
        $expenses_category->update($request->all());

         return redirect('admin/expenses_categories');
    }

Upvotes: 3

Views: 3941

Answers (2)

Sohel0415
Sohel0415

Reputation: 9853

Use url in your form -

{!! Form::model($expenses_category, ['method' => 'POST', 'url' =>'admin/update/'.$expenses_category->id]) !!}

Upvotes: 1

Alexey Mezenin
Alexey Mezenin

Reputation: 163748

You're trying to use the route by its name, but you didn't name it. So, change it to:

'route' => ['admin.update', ....

And name the route:

Route::post('/update/{id}', 'ExpensesCategoriesController@updateCat')->name('admin.update');

Or:

Route::post('/update/{id}', ['as' => 'admin.update', 'uses' => 'ExpensesCategoriesController@updateCat']);

Upvotes: 0

Related Questions