Bem, para começar, você precisa para executar um findOrFail () ou similar na consulta $ user
Mark Baker
9
que realmente não ajuda
Ben
1
Então o que isso faz? Por que isso não ajuda? $user = User::where('email', '=', Input::get('email'));simplesmente cria uma consulta $user, você precisa executar essa consulta. findOrFail()é uma maneira de executar essa consulta. get()seria outra maneira, firstOrFail()outra #
Mark Baker
2
Se uma sugestão "não ajuda" tente dizer por que isso realmente não ajuda, porque dessa forma significa que sabemos como melhorar / mudar essa sugestão
embora não se encaixe na pergunta, ainda assim, funções muito úteis. a diferença entre os dois é que firstOrNew instancia uma instância do modelo chamada enquanto firstOrCreate salva o modelo consultado instantaneamente, portanto, é necessário atualizar as alterações no modelo firstOrCreate.
Gokigooooks
Sim, ou outra maneira de pensar, use firstOrCreate se você puder passar todos os atributos de uma só vez (use o segundo parâmetro), mas firstOrNew se precisar de mais lógica antes de salvar.
Sim, mas não está retornando uma coleção. Ele está retornando um único objeto de modelo, pois você presumiria que cada usuário tem um único, emailentão ->isEmpty()lançará um erro.
User3574492
E se eu receber o seguinte erro: #Call to a member function isEmpty() on null
Pathros Path
6
if(User::where('email','[email protected]')->first())// It existselse// It does not exist
Use first(), não count()se você só precisa verificar a existência.
first()é mais rápido porque verifica uma única correspondência enquanto count()conta todas as correspondências.
Laravel 6 ou na parte superior: Escreva o nome da tabela e forneça a condição da cláusula where, por exemplo, where ('id', $ request-> id)
publicfunction store(Request $request){
$target = DB:: table('categories')->where('title', $request->name)->get()->first();if($target ===null){// do what ever you need to do
$cat =newCategory();
$cat->title = $request->input('name');
$cat->parent_id = $request->input('parent_id');
$cat->user_id=auth()->user()->id;
$cat->save();return redirect(route('cats.app'))->with('success','App created successfully.');}else{// match found return redirect(route('cats.app'))->with('error','App already exists.');}}
// if you need to do something with the user if($user =User::whereEmail(Input::get('email'))->first()){// ...}// otherwise
$userExists =User::whereEmail(Input::get('email'))->exists();
$user = User::where('email', '=', Input::get('email'));
simplesmente cria uma consulta$user
, você precisa executar essa consulta.findOrFail()
é uma maneira de executar essa consulta.get()
seria outra maneira,firstOrFail()
outra #Respostas:
Depende se você deseja trabalhar com o usuário posteriormente ou apenas verificar se existe algum.
Se você deseja usar o objeto de usuário, se existir:
E se você quiser apenas verificar
Ou ainda melhor
fonte
exists()
contra um registro inexistente, eleCall to a member function exists() on null
first()
Uma das melhores soluções é usar o método
firstOrNew
oufirstOrCreate
. A documentação tem mais detalhes sobre ambos.fonte
fonte
exists()
métodoEloquent usa coleções. Veja o seguinte link: https://laravel.com/docs/5.4/eloquent-collections
fonte
email
então->isEmpty()
lançará um erro.Call to a member function isEmpty() on null
Use
first()
, nãocount()
se você só precisa verificar a existência.first()
é mais rápido porque verifica uma única correspondência enquantocount()
conta todas as correspondências.fonte
No laravel eloquent, possui o método Existe () padrão, consulte o exemplo a seguir.
if(User::where('id', $user_id )->exists()){ // your code... }
fonte
Laravel 5.6.26v
para encontrar o registro existente por meio da chave primária (email ou ID)
então
inclua "use DB" e o nome da tabela user se torne plural usando a consulta acima como user to users
fonte
Isso verificará se o email solicitado existe na tabela de usuários:
fonte
No seu controlador
Na sua visão - a mensagem já existe no display
fonte
required|unique:users,email|email
funcionaria com try / catch
-> get () ainda retornaria uma matriz vazia
fonte
fonte
É simples saber se existem registros ou não
fonte
fonte
você pode usar a validação laravel.
Mas esse código também é bom:
fonte
Isso verificará se um endereço de email específico existe na tabela:
fonte
A verificação
null
dentro daif
instrução impede que o Laravel retorne 404 imediatamente após o término da consulta.Parece que ele executa uma consulta dupla se o usuário for encontrado, mas não consigo encontrar nenhuma outra solução confiável.
fonte
find
porwhere
.User::where(id, 1)->first()
pode ser escrito como
Isso retornará verdadeiro ou falso sem atribuir uma variável temporária, se for para isso que você está usando $ user na instrução original.
fonte
Eu acho que abaixo é a maneira mais simples de conseguir o mesmo:
fonte
Criado abaixo do método (para mim) para verificar se o ID do registro fornecido existe na tabela Db ou não.
Home Ajuda!
fonte
A maneira mais fácil de fazer
fonte
Laravel 6 ou na parte superior: Escreva o nome da tabela e forneça a condição da cláusula where, por exemplo, where ('id', $ request-> id)
fonte
A maneira eficiente de verificar se o registro existe, você deve usar o método is_null para verificar a consulta.
O código abaixo pode ser útil:
fonte
Opções de trabalho mais curtas:
fonte
aqui está um link para algo que acho que pode ajudar https://laraveldaily.com/dont-check-record-exists-methods-orcreate-ornew/
fonte
este é um código simples para verificar se o e-mail existe ou não no banco de dados
fonte