Как извлечь данные из базы данных с 3 параметрами Laravel
Я все еще новичок в этом 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);
});
Пожалуйста, любая помощь будет оценена, спасибо.

Ответы - Как извлечь данные из базы данных с 3 параметрами Laravel / How to fetch data from database with 3 parameters Laravel

17.12.2019 02:53:33
Вы можете попробовать и это.
$cariinstasama = Barang_Keluar::where('id', $cariid);
if($instansiid !== null)
{
$cariinstasama->where('instansi_id', $instansiid);
}
if($tanggal !== null)
{
$cariinstasama->where('instansi_id', $instansiid);
}
$result = $cariinstasama->get();

17.12.2019 09:17:11
Laravel query builder предоставляет элегантный способ поставить условное предложение с помощью 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