这是本机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中这样做的正确方法吗?
答案 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();