Php 可选项,其中Laravel
假设我有一个简单的连接查询:Php 可选项,其中Laravel,php,laravel,Php,Laravel,假设我有一个简单的连接查询: $googleAds = TrackingApi::where("company_id",$companyId) ->leftJoin("googleads",function($join) use ($date){ $join->on("tracking_api.google_id", "googleads.id")
$googleAds = TrackingApi::where("company_id",$companyId)
->leftJoin("googleads",function($join) use ($date){
$join->on("tracking_api.google_id", "googleads.id")
->where("googleads.created", "<=", $date
})
->select(DB::raw('count(googleads.id) as totalAds'))->get();
$googleAds=TrackingApi::where(“公司id”,“公司id”)
->leftJoin(“gogleads”,函数($join)使用($date){
$join->on(“tracking\u api.google\u id”、“googleads.id”)
->其中(“googleads.created””,“您可以使用when
方法:
$googleAds = TrackingApi::where("company_id",$companyId)
->leftJoin("googleads",function($join) use ($date){
$join->on("tracking_api.google_id", "googleads.id")
->when($date, function ($query) use ($date) {
return $query->where("googleads.created", "<=", $date
})
})
->select(DB::raw('count(googleads.id) as totalAds'))->get();
$googleAds=TrackingApi::where(“公司id”,“公司id”)
->leftJoin(“gogleads”,函数($join)使用($date){
$join->on(“tracking\u api.google\u id”、“googleads.id”)
->当($date,函数($query)使用($date){
返回$query->where(“googleads.created”,“作为备选方案:
$googleAds = TrackingApi::where("company_id", $companyId)
->leftJoin("googleads",function($join) use ($date){
$join->on("tracking_api.google_id", "=", "googleads.id");
if (!empty($date))
$join->where("googleads.created", "<=", $date);
});
->select(DB::raw('count(googleads.id) as totalAds'))
->get();
$googleAds=TrackingApi::where(“公司id”,“公司id”)
->leftJoin(“gogleads”,函数($join)使用($date){
$join->on(“tracking_api.google_id”、“=”、“googleads.id”);
如果(!空($date))
$join->where(“googleads.created”,”@user320487答案是正确的,但是,您也可以在方法中传递第二个参数,而不是在closer中使用“use”关键字,这将是一个更具可读性和可维护性的代码
$googleAds =
TrackingApi::whereCompany_id($companyId)
->leftJoin("googleads", function ($join) use ($date) {
$join->on("tracking_api.google_id", "googleads.id")
->when($date, function ($query, $date) {
return $query->where("googleads.created", "<=", $date);
});
})
->select(DB::raw('count(googleads.id) as totalAds'))
->get();
$googleAds=
TrackingApi::whereCompany\u id($companyId)
->leftJoin(“gogleads”,函数($join)使用($date){
$join->on(“tracking\u api.google\u id”、“googleads.id”)
->何时($date,函数($query,$date){
return$query->where(“googleads.created”,“香草PHP是合法的,即使是纯SQL,当太多的“抽象”阻碍时,这是非常正确的语句。做得好,我的问题稍微更具体一些。@Itaymav MalimovkaI指的是您的具体问题。香草PHP+香草SQL会更简单,更清晰。:-)想想看,多么“愚蠢”很简单,所以感觉不对。嗯,有趣的是,这会抛出一个您的SQL语法中有一个错误
,因为我假设when
方法只在$date
其提供时执行闭包。因此连接不会发生,我希望连接被包括在内,即使$date
未提供要点。如果未提供日期,则当前应用您的答案的日期将不存在。我将为您提供一个绿色的勾号,以防其正确工作。谢谢。