laravel

Laravel BadMethodCallException Method [find] não existe

Laravel BadMethodCallException Method [find] não existe

Problema

Tenho tentado obter um modelo do Eloquent do banco de dados, mas continuo tentando BadMethodCallExceptionMethod [find] não existe.

Aqui está o que tentei até agora:

namespace App;
use Illuminate \ Database \ Eloquent \ Model;
use App \ Organização;
class User extends Model
/ **
* A tabela de banco de dados usada pelo modelo.
*
* @var string
* /
protegido $ table = 'usuários';
/ **
* Os atributos excluídos do formulário JSON do modelo.
*
* @var array
* /
protegido $ escondido = array ('senha');
organizações de função pública ()

return $ this-> belongsToMany (Organization :: class);

Esta é uma classe de usuário básica que vem com cada novo projeto Laravel. Depois de criar um novo usuário, posso ver claramente que o usuário com ID3 existe no banco de dados. No entanto, quando faço o seguinte, acabo com o Método BadMethodCallException [find] não existe

class User extends BaseController
public function getUser ($ id)

$ my_user = User :: find ($ id);
visualização de retorno ('usuários.índice ', array (' usuário '=> $ meu_usuário));

Arquivo Minhas rotas rotas \ web.php:

Route :: get ('user / id', '[email protected]');
Route :: get ('/', function ()

return View :: make ('test');
);

Solução

Existem alguns problemas com esta implementação que podem estar fazendo com que você receba Método BadMethodCallException [find] não existe exceção.

Depois de fazer isso, você deve ser capaz de acessar seu modelo App \ User como pretendia.

Explicação adicional (apenas para fins educacionais)

Como você sabe, o desenvolvimento da web nunca teve a intenção de ser um show de um homem só. Em geral, você pode esperar colaborar com outros desenvolvedores cerca de 90% do tempo. Para que o projeto seja bem-sucedido, você deve se certificar de que todos estão seguindo as regras gerais de codificação.

Uma das regras será sobre convenções de nomenclatura e eu entendo que manter uma convenção de nomenclatura definida requer muito esforço e pode potencialmente desperdiçar muito tempo da equipe até que todos possam entendê-la e segui-la. Isso é especialmente difícil para novos desenvolvedores que se juntam à equipe.

Eu sugiro que você tente ler mais sobre o código de outras pessoas antes de começar a escrever o seu, apenas para ter uma noção das melhores práticas da indústria.

Algumas regras são obrigatórias e outras são deixadas para a equipe decidir como eles querem abordar.

Olhando para o problema acima, você notará que todas as classes devem ser escritas em um StudlyCaps, então UserController e não user_controller .

E este é um exemplo de regra obrigatória a seguir.

Agora, um exemplo do que você como uma equipe pode definir como sua regra interna é como você nomeia suas classes, métodos e variáveis.

Se é esperado que um projeto cresça com o tempo, você certamente pode esperar muitas entidades diferentes que de uma forma ou de outra incluem um usuário, então é importante que você não venha com nomes vagos para suas classes, métodos e variáveis.

Minha dica pessoal aqui é; não tenha medo de ter uma classe mais longa ou um nome de método. Se você precisa de um comentário que explique o seu método, então o nome do seu método provavelmente pode ser melhor.

Um exemplo disso é que se você precisar obter usuários de um banco de dados com alguma condição adicional, talvez esses sejam usuários com mais de 50 anos, então não nomeie seu método getUsers . A melhor maneira de nomeá-lo é getAllUsersOver50YearsOld .

Como usar o GameConqueror Cheat Engine no Linux
O artigo cobre um guia sobre como usar o mecanismo de cheat GameConqueror no Linux. Muitos usuários que jogam no Windows costumam usar o aplicativo “C...
Melhores emuladores de console de jogo para Linux
Este artigo irá listar software de emulação de console de jogo popular disponível para Linux. A emulação é uma camada de compatibilidade de software q...
Melhores distros Linux para jogos em 2021
O sistema operacional Linux percorreu um longo caminho desde sua aparência original, simples e baseada em servidor. Este sistema operacional melhorou ...