对此laravel的等效查询是什么?

时间:2017-04-03 14:43:04

标签: laravel

这是本机sql:

$sql = "Select count(name) from users Where email = 't@t.com' and user_id = 10";

我有这个laravel代码:

$checker = Customer::whereEmailAndUserId("t@t.com",10)->count("name");

这是在laravel中这样做的正确方法吗?

3 个答案:

答案 0 :(得分:1)

您尝试的选项不正确

这是正确的选项

$users = \App\Customer::where('email','t@t.com')
                  ->where('user_id',10)
                  ->count()

上述代码的说明

App\Customer是Model类,我正在尝试阅读记录where email = 't@t.com您可以使用各种比较运算符,例如<>等等,您也可以使用与字符串模式匹配相同的功能

例如

$users = \App\Customer::where('email','%t.com')
                  ->where('user_id',10)
                  ->count()

您也可以使用相同的where函数进行Null Value测试

例如

$users = \App\Customer::where('email','=', null)
                  ->where('user_id',10)
                  ->count()

上面的where子句将转换为SQL的is null测试

您可以阅读更多here

答案 1 :(得分:1)

您必须使用where辅助函数并传递一系列检查。例如,在您的代码中,它将是:

$checker = Customer::where([
                ['email', '=', 't@t.com'],
                ['user_id' '=', '10']
            ])->count();

注意:请使用表中的相应列名。

答案 2 :(得分:1)

假设Customer模型代表表格users,您将获得如此雄辩的查询:

Customer::where('email', 't@t.com')->where('user_id', 10)->select(\DB::raw('count(name)'))->get();