取消或重写Laravel中的WHERE子句?

时间:2017-11-06 12:43:42

标签: mysql laravel laravel-5

我可以取消或重写WHERE条件吗?

我有以下查询...

<?php

$userOrUsers = \DB::table('users')->where('id',7);
if(!$userOrUsers->exists()){
    $userOrUsers->where('id','!=',7);
}
$userOrUsers = $userOrUsers->get();

dd($userOrUsers);

查询没有给我任何信息,如何在不使用两个 - &gt; get()的情况下取消最后的

如果id 7不存在,则不需要id!= 7

感谢。

2 个答案:

答案 0 :(得分:1)

您可以将查询用作:

if($user = \DB::table('users')->find(7)) return $user;
else return \DB::table('users')->all();

答案 1 :(得分:0)

您可以进行一些收集操作

$userOrUsers = \DB::table('users')->all();

if($userOrUsers->contains('id', 7)) {
$userOrUsers = $userOrUsers->filter(function ($value, $key) {
    return $value->id == 7;
})->all();
};