Home > Blockchain >  Laravel | Route not defined
Laravel | Route not defined

Time:04-27

I have a problem in my Route.

I see this error:

 Route [utilizadores.editar] not defined

The error occurs on the page when I try to update the data in my DB. My Route:

Route::put('Utilizadores/{item}', [FuncionarioController::class, 'editar'])->name('utilizadores.editar');
Route::get('Utilizadores/{item}/edit', [FuncionarioController::class, 'edit'])->name('utilizadores.edit');

My controller:

 public function editar(Request $request, funcionario $item){
     
    $item->nome = $request->nome;
    $item->email = $request->email;
    $item->telefone = $request->telefone;

    $item->foto = $request->foto;

    $item->data_nasc = $request->data_nasc;
    $item->nacionalidade = $request->nacionalidade;
    $item->n_cartao_cc = $request->n_cartao_cc;
    $item->nif = $request->nif;
    $item->morada = $request->morada;
    $item->n_porta = $request->n_porta;
    $item->localidade = $request->localidade;
    $item->concelho = $request->concelho;
    $item->distrito = $request->distrito;
    $item->cp = $request->cp;

    $item->data_entrada = $request->data_entrada;
    $item->funcao = $request->funcao;
    $item->estado = $request->estado;

   // $item->n_ferias_disponiveis = $request->n_ferias_disponiveis; 
    
   // $item->data_registo = $now;

    dd($item);

    $item->save();
    return redirect()->route('utilizadores.index');   
   
    }

My View:

<form  method="POST" action="{{route('utilizadores.editar',$item->id)}}" enctype="multipart/form-data">
@csrf
@method('put')

Where am I wrong? I have other pages like this done and it works.

Thanks to anyone who can help me.

Edit: My php artisan route:list

  |        | DELETE   | Utilizadores/{item}             | utilizadores.delete         | App\Http\Controllers\FuncionarioController@delete             | web
                     |
  |        | PUT      | Utilizadores/{item}             | utilizadores.editar_perfil  | App\Http\Controllers\FuncionarioController@editar_perfil      | web
                     |
  |        | GET|HEAD | Utilizadores/{item}/delete      | utilizadores.modal          | App\Http\Controllers\FuncionarioController@modal              | web
                     |
  |        | GET|HEAD | Utilizadores/{item}/edit        | utilizadores.edit           | App\Http\Controllers\FuncionarioController@edit               | web
                     |
  |        | GET|HEAD | Utilizadores/{item}/edit_perfil | utilizadores.edit_perfil    | App\Http\Controllers\FuncionarioController@edit_perfil        | web
                     |
  |        | PUT      | Utilizadores/{item}/editpass    | utilizadores.passwordeditar | App\Http\Controllers\FuncionarioController@passwordeditar     | web

CodePudding user response:

Just swap edit and editar route. Something like this

Route::get('Utilizadores/{item}/edit', [FuncionarioController::class, 'edit'])->name('utilizadores.edit');
Route::put('Utilizadores/{item}', [FuncionarioController::class, 'editar'])->name('utilizadores.editar');

Or better, use resource controller for simpler Route file

Route::resource('utilizadores', FuncionarioController::class);

Keep in mind that you will tweak some function name and route file

Docs

CodePudding user response:

First look to your route list using below command

php artisan route:list

If the routes exists then hit this command :

php artisan optimize
php artisan optimize:clear
  • Related