如何使用 3 个参数 Laravel 从数据库中获取数据

Shi*_*hin 3 mysql laravel eloquent

我还是这个 Laravel 的新手,现在我在从数据库中获取数据时遇到了麻烦。我想得到的是当只有一个数据可用时,第二个参数不会被执行,但是如果第二个参数有一些可用的数据,那么第一个参数和第二个参数的所有数据都将被调用。

    $detail = Barang_Keluar_Detail::findOrFail($id); //15
    $cariid = $detail->pluck('barang_keluar_id');
    $instansiquery = Barang_Keluar::where('id',$cariid)->first(); //21
    $instansiid = $instansiquery->pluck('instansi_id');
    $tanggal = $instansiquery->pluck('tanggal')->first();//2019-12-31
Run Code Online (Sandbox Code Playgroud)

参数在这里

    $cariinstasama = Barang_Keluar::where('id', $cariid)
        ->orWhere(function ($query) use($instansiid, $tanggal) {
            $query->where('tanggal', "'$tanggal'")
            ->where('instansi_id', $instansiid);
        });
Run Code Online (Sandbox Code Playgroud)

请任何帮助将不胜感激,谢谢。

R.K*_*ini 6

Laravel 查询构建器提供了使用when(). 您可以在查询中放置条件子句,如下所示:

$cariinstasama = Barang_Keluar::where('id', $cariid)
    ->when($instansiid, function ($query, $instansiid) {
        return $query->where('instansi_id', $instansiid);
    })
    ->when($tanggal, function ($query, $tanggal) {
        return $query->where('tanggal', $tanggal);
    })->get();
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅https://laravel.com/docs/5.8/queries#conditional-clauses