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

标签 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

参数在这里

    $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/

相关文章:

php - mysql + php 的性能

PHP 对来自 Aurora MySQL 的 JSON 编码数据失败

php - Laravel Lighthouse 配置 - 无法找到可发布的资源

database - Laravel 5.2 - Eloquent 多对多关系

php - php mysql 没有选择数据库错误

php - 使用连接表进行 codeigniter 搜索

html - 如何调整弹出日期和标题的显示?

mysql - 在 Controller 的存储方法中添加两个查询

laravel - self 加入 Eloquent - 如何调用

php - Laravel Eloquent 添加自定义查询元素