ошибка при обновлении таблицы (crud) в laravel - PullRequest
0 голосов
/ 07 июня 2019

Когда я готовлюсь отредактировать таблицу, я получаю следующую ошибку:

"Метод POST не поддерживается для этого маршрута. Поддерживаемые методы: GET, HEAD."

<?php

Route::get('/crear',[

    'uses'=>'CarController@mostrar',

    'as'=>'cars.create'

]   

);

Route::post('/crear',[

    'uses'=>'CarController@crear',

    'as'=>'cars.crear'

]);

Route::get('/', 'CarController@casa' );

Route::post('cars/{id?}/editar', 'CarController@edit')->name('editarcar');

Route::post('cars/{id?}/editar', 'CarController@update');

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

Route::resource('cars', 'CarController');

В поле зрения

@extends('layouts.app')

@section('title', 'Contact')

@section('content')

    <div class="container col-md-8 col-md-offset-2">

        <div class="well well bs-component">

            <form class="form-horizontal" method="post">

                @foreach ($errors->all() as $error)

                    <div class="alert alert-danger">{{ $error }}</div>

                @endforeach

                @if(session('status'))

                    <div class="alert alert-success">

                        {{ session('status') }}

                    </div>

                @endif

                {!! csrf_field() !!}

                <fieldset>

                    <legend>Editar </legend>

                    <div class="form-group">

                        <label for="patente" class="col-lg-label">patente</label>

                        <div class="col-lg-10">

                            <input type="text" name="patente"size="6" maxlength="6" class="form-control"required>

                        </div>

                    </div>

                    <div class="form-group">

                        <label for="marca" class="col-lg-label">marca</label>

                        <div class="col-lg-10">

                            <input type="text" name="marca" class="form-control" required> 

                        </div>

                    </div>

                    <div class="form-group">

                        <label for="modelo" class="col-lg-label">modelo</label>

                        <div class="col-lg-10">

                            <input type="text" name="modelo" class="form-control" required>

                        </div>

                    </div>

                    <div class="form-group">

                        <label for="color" class="col-lg-label">color</label>

                        <div class="col-lg-10">

                            <input type="text" name="color" class="form-control" required>

                        </div>

                    </div>

                    <div class="form-group">

                        <div class="col-lg-10 col-lg-offset-2">

                            <button class="btn btn-default">Cancelar</button>

                            <button type="submit" class="ntm btn-primary">Actualizar</button>

                        </div>

                    </div>

                </fieldset>

            </form>

        </div>

    </div>

@endsection

Контроллер

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;


namespace App\Http\Controllers;

use App\Car;

use Illuminate\Http\Request;


    public function edit($id)
    {
        $car = car::whereid($id)->firstOrFail();

        return view('edit', compact('cars'));

    }

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

        $car = car::whereid($id)->firstOrFail();

        $car->patente = $request->post('patente');

        $car->marca = $request->post('marca');

        $car->modelo = $request->post('modelo');

        $car->color = $request->post('color');

        $car->save();

        return redirect(action('CarsController@edit', $car->id))->with('status', 'El car ' . $id . ' ha sido actualizado');

    }

1 Ответ

0 голосов
/ 07 июня 2019

Обновите свой контроллер> отредактируйте действие с правильной переменной compact.

public function edit($id)
{
    $car = car::whereid($id)->firstOrFail();

    return view('edit', compact('car'));

}

Добавьте действие формы, например {{ route("cars.update", ['car' => $car->id]) }}, чтобы ваш вид выглядел следующим образом:

@extends('layouts.app')

@section('title', 'Contact')

@section('content')

    <div class="container col-md-8 col-md-offset-2">

        <div class="well well bs-component">

            <form class="form-horizontal" action="{{ route("cars.update") }}" method="post">

                @foreach ($errors->all() as $error)

                    <div class="alert alert-danger">{{ $error }}</div>

                @endforeach

                @if(session('status'))

                    <div class="alert alert-success">

                        {{ session('status') }}

                    </div>

                @endif

                {!! csrf_field() !!}

                <fieldset>

                    <legend>Editar </legend>

                    <div class="form-group">

                        <label for="patente" class="col-lg-label">patente</label>

                        <div class="col-lg-10">

                            <input type="text" name="patente"size="6" maxlength="6" class="form-control"required>

                        </div>

                    </div>

                    <div class="form-group">

                        <label for="marca" class="col-lg-label">marca</label>

                        <div class="col-lg-10">

                            <input type="text" name="marca" class="form-control" required> 

                        </div>

                    </div>

                    <div class="form-group">

                        <label for="modelo" class="col-lg-label">modelo</label>

                        <div class="col-lg-10">

                            <input type="text" name="modelo" class="form-control" required>

                        </div>

                    </div>

                    <div class="form-group">

                        <label for="color" class="col-lg-label">color</label>

                        <div class="col-lg-10">

                            <input type="text" name="color" class="form-control" required>

                        </div>

                    </div>

                    <div class="form-group">

                        <div class="col-lg-10 col-lg-offset-2">

                            <button class="btn btn-default">Cancelar</button>

                            <button type="submit" class="ntm btn-primary">Actualizar</button>

                        </div>

                    </div>

                </fieldset>

            </form>

        </div>

    </div>

@endsection
...