我还是这个 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
参数在这里
$cariinstasama = Barang_Keluar::where('id', $cariid)
->orWhere(function ($query) use($instansiid, $tanggal) {
$query->where('tanggal', "'$tanggal'")
->where('instansi_id', $instansiid);
});
任何帮助将不胜感激,谢谢。
最佳答案
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();
更多信息见https://laravel.com/docs/5.8/queries#conditional-clauses
关于mysql - 如何使用 3 个参数 Laravel 从数据库中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58388384/