繁体   English   中英

是否可以附加laravel DB查询?

[英]Is it possible to append laravel DB queries?

控制器中的代码

public function getAthleteProperties(Request $request)
{
    $getAthlete = DB::table('students')
                ->join('sports', 'students.id', '=', 'sports.athlete');
                ->select('students.*', 'sports.*')
                ->get();

    if($request->input('gender') == 1)
    {
        //add this line of queries to $getAthlete queries
        ->where('gender', "m");
    }
    else
        ->where('gender', "f");

    if($request->input('active') == 1)
    {
        //add this line of queries to $getAthlete queries
        ->where('active', "y");
    }
    else
        ->where('active', "n");

    return view('admin', compact('getAthlete'));
}

是否可以在laravel中追加查询? 例如,我有上面代码中所示的代码,如果性别的条件为1,活动的条件为1,则$ getAthlete查询的结尾将变成这样。 可能吗? 怎么样?

    $getAthlete = DB::table('students')
                ->join('sports', 'students.id', '=', 'sports.athlete');
                ->select('students.*', 'sports.*')
                ->where('gender', "m") //added because condition is true
                ->where('active', "y") //added because condition is true
                ->get();

您不必首先使用“ get”方法,因为它执行select语句。

public function getAthleteProperties(Request $request)
{
    $getAthlete = DB::table('students')
                ->join('sports', 'students.id', '=', 'sports.athlete');
                ->select('students.*', 'sports.*');

    if($request->input('gender') == 1)
    {
        //add this line of queries to $getAthlete queries
        $getAthlete->where('gender', "m");
    }
    else
        $getAthlete->where('gender', "f");

    if($request->input('active') == 1)
    {
        //add this line of queries to $getAthlete queries
        $getAthlete->where('active', "y");
    }
    else
        $getAthlete->where('active', "n");

    $getAthlete = $getAthlete->get();

    return view('admin', compact('getAthlete'));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM