Como você verifica se um campo não é nulo no Eloquent?
Eu tentei, Model::where('sent_at', 'IS NOT', DB::raw('null'))->...
mas dá IS NOT
como uma ligação em vez de uma comparação.
Isto é o que DB::getQueryLog()
diz sobre isso:
'query' => string 'select * from my_table where sent_at = ? and profile_id in (?, ?) order by created_at desc' (length=101)
'bindings' =>
array (size=3)
0 => string 'IS NOT' (length=6)
1 => int 1
2 => int 4
!=
vez de NÃO É.Respostas:
O Eloquent tem um método para isso (Laravel 4. * / 5. *);
Laravel 3:
fonte
whereNull('deleted_at')
e minha consulta foi executada.whereNotNull()
método (e vários outros que não foram documentados anteriormente) foram adicionados à documentação na versão 5.1: laravel.com/docs/5.1/queries#where-clauses .Se alguém como eu quiser fazê-lo com o construtor de consultas no Laravel 5.2.23, isso pode ser feito como ->
Ou com escopo no modelo:
fonte
'and'
significa?public function where($column, $operator = null, $value = null, $boolean = 'and');
e localização -".....\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php"
Se você deseja usar a fachada do banco de dados :
DB::table('table_name')->whereNotNull('sent_at')->get();
fonte
Podemos usar
Ou
fonte
Vejo que essa pergunta é um pouco antiga, mas eu a encontrei procurando uma resposta. Embora eu não tenha tido sucesso com as respostas aqui, acho que isso pode ser porque eu estou no PHP 7.2 e no Laravel 5.7. ou possível, porque eu estava apenas brincando com alguns dados na CLI usando o Laravel Tinker.
Tenho algumas coisas que tentei que funcionaram para mim e outras que, espero, não ajudarão outras pessoas.
Não tive sucesso:
Todas as opções acima retornaram uma matriz vazia para mim
No entanto, tive sucesso:
Isso retornou todos os resultados em uma matriz como eu esperava. Nota: você pode soltar
all()
e recuperar um Illuminate \ Database \ Eloquent \ Collection em vez de uma matriz, se preferir.fonte
no laravel 5.4 esse código
Model::whereNotNull('column')
não estava funcionando, você precisa adicionarget()
como esteModel::whereNotNull('column')->get();
este funciona bem para mim.fonte
Se você deseja pesquisar o registro excluído (Registro excluído suave), não use o Eloquent Model Query. Em vez disso, use a consulta Db :: table, por exemplo, em vez de usar Abaixo:
Usar:
fonte
Db::table
para encontrar os registros excluídos. Você pode filtrá-los com o métodowithTrashed()
, como é dito nos docs: laravel.com/docs/5.3/eloquent