[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Jean Silva
Criador Jean Silva 06/09/2022

Opa Professor, boa tarde!

Eu criei um novo controller e fiz tudo certo, na hora de eu testar a api com o metodo show, notei que eu não conseguia de jeito algum passar com o id, sempre dava not found, dei o comando php artisan route:list e notei que na rota de lista estão assim meus ids.

Encontrei um arquivo chamado routes-v7.php, aonde fica as tags {person}, eu alterando ele para {people} funciona como eu gostaria, portanto sempre que eu efetuo um php artisan optimize, os arquivos são otimizados e volta para o estado original.

Sabe algum jeito de reparar isso, sem que eu refaça tudo?.

Grato.

Route:list

  GET|HEAD        api/people/{person} ............................................... people.show › PeopleController@show

  PUT|PATCH       api/people/{person} ........................................... people.update › PeopleController@update

  DELETE          api/people/{person} ......................................... people.destroy › PeopleController@destroy

Sendo que minha rota api está assim:

  Route::apiResource('people', PeopleController::class);

Meu PeopleController.php

    public function show(People $people)
    {
        $this->authorize('view', $people);
        $people = People::with(['peopleType'])->findOrFail($people->id);
        return new PeopleResource($people);
    }

 

Manager Carlos Ferreira 06/09/2022

Olá, Jean!
Tudo bem?

Arquivo routes-v7.php?
Foi vc quem criou esse arquivo de rotas?

Me dê mais detalhes por favor;

Carlos Ferreira
Criador Jean Silva 06/09/2022

Olá Professor, bom dia!

Não, eu apenas dei um search all files no vs code por person e encontrei esse arquivo.

img:

https://pasteboard.co/bKxQztSWEZsy.jpg

Jean Silva
Manager Carlos Ferreira 06/09/2022

Ah sim, é cache;

Limpa os caches:
php artisan cache:clear
php artisan route:clear
php artisan config:clear
php artisan view:clear

Carlos Ferreira
Criador Jean Silva 06/09/2022

Pois é, já fiz tudo isso, já dei um optimize também.

Portanto ainda continua com o person na route:list e no arquivo routes-v7.php - boootstrap\cache.

https://pasteboard.co/8fRoqT8rWF8d.jpg

https://pasteboard.co/TXGR2NJBC4AY.jpg

PS C:\laragon\www\Back-end\gateway-web-backend> php artisan cache:clear

INFO  Application cache cleared successfully.

PS C:\laragon\www\Back-end\gateway-web-backend> php artisan route:clear

INFO  Route cache cleared successfully.

PS C:\laragon\www\Back-end\gateway-web-backend> php artisan config:clear

 INFO  Configuration cache cleared successfully.

PS C:\laragon\www\Back-end\gateway-web-backend> php artisan view:clear

INFO  Compiled views cleared successfully.

PS C:\laragon\www\Back-end\gateway-web-backend>

Jean Silva
Manager Carlos Ferreira 06/09/2022

Deleta manualmente os arquivos em boostrap/cache/

Carlos Ferreira
Criador Jean Silva 06/09/2022

Opa Profesor, bom dia!

Voltando aqui, as tentativas não deram corrigiram o problema, infelizmente, depois de muita pesquisa, descrobi que teve algumas pessoas que tiveram alguns problemas parecidos, quando criaram tabelas com nomes peoples, pois o laravel pluraliza, lendo a documentação, isso faz parte da convenção do mesmo, mas não sabia que ele alterava o nome de people para person, ao criar um novo model -a.

Para solucionar ou eu incluia na model a tabela diretamente, ou eu me submetia aos models Person e a tabela como people.

https://www.anycodings.com/1questions/4877529/disable-laravel-pluralization-for-person-to-people

Obrigado pela ajuda de sempre, a quem desejar, essa ajuda pode servir.

Jean Silva
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!