PHP/CodeIgniter 4 在非 NULL 数据上返回 NULL 值

问题描述 投票:0回答:1

请帮忙。我想获得每周总收入,但我的返回值为空。

这是我的模型

public function getDataPenjualanWeekly() 
{
    $date_start = strtotime('last Sunday'); 
    $week_start = date('d-m-Y', $date_start); // 31-12-2023 (Sunday)
    $date_end = strtotime('next Sunday');
    $week_end = date('d-m-Y', $date_end); // 07-01-2024 (Sunday)

    return $this->db->table('penjualan')
    ->selectSum('total_laba_kotor', 'sumQuantities')
    ->where('tanggal_penjualan >=', $week_start)
    ->where('tanggal_penjualan <', $week_end)
    ->get()
    ->getRow()
    ->sumQuantities;
}

这是我的控制器

public function index()
{
    $weekly = $this->PenjualanModel->getDataPenjualanWeekly();
    dd($weekly); // this is line 19
    $data = [
        'carts'     => $this->KeranjangModel->getKeranjangUser(),
        'qty'       => $this->KeranjangModel->getTotalQtyKeranjang(),
        'price'     => $this->KeranjangModel->getSubTotalKeranjang(),
        'daily'     => $this->PenjualanModel->getDataPenjualanDaily(),
        'weekly'    => $this->PenjualanModel->getDataPenjualanWeekly(),
        'monthly'   => $this->PenjualanModel->getDataPenjualanMonthly(),
    ];
    return view('admin/index', $data);
}

这是我的桌子

这是我转储数据时的结果

谢谢你。

我的逻辑有问题吗?

php codeigniter codeigniter-4
1个回答
0
投票

您显示的日期比较代码:

->where('tanggal_penjualan >=', $week_start) ...
仅当

tanggal_penjualan

 是数据库中的日期字段时,
才有效。您显示的数据的屏幕截图显示该列具有类似
02-01-2024
的值。

来自 MySQL 文档

MySQL 以“YYYY-MM-DD”格式检索并显示 DATE 值。

所以看起来

tanggal_penjualan
不是日期列,并且像您的代码使用的日期比较将不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.