laravel 我在 4 天之前在视图表中获取值如何保留一旦获取值在表中显示(如果日期在任何时间之后)

发布于 2025-01-20 13:52:18 字数 209 浏览 0 评论 0原文

使用此代码我可以在视图表中获取 4 天之前的数据,我想在获取数据后显示它在视图表中的任何时间显示

 $dueDate = Carbon::now()->addDays(4);
 Payment::select( 'next_due_date')->whereDate('next_due_date', $dueDate)->get();

Using this code I'm able to get data before 4days in view table, I want to display once I get data it present show any time in view table

 $dueDate = Carbon::now()->addDays(4);
 Payment::select( 'next_due_date')->whereDate('next_due_date', $dueDate)->get();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

丢了幸福的猪 2025-01-27 13:52:18

如果要保存状态,则有很多选择。
最方便和快速的方法是将它们保存在缓存数据库本身中。

解决方案1:保存缓存:(如果您在付款表中没有太多行(如果您的行太多))

$payments = Payment::select( 'next_due_date')
  ->where(function($q){
    // Get rows that are current next_due_date or is cached
    $q->whereDate('next_due_date', Carbon::now()->addDays(4))
      ->when(cache()->has('saved_payment_ids'), function(){
        $q->orWhereIn('id', cache()->get('saved_payment_ids') ?? []);
      });
  })
  ->get();

// Remember forever current rows in cache
cache()->forever('saved_payment_ids', $payments->pluck('id')->toArray());

解决方案2:保存DB(接收方式)

/**
 * First you have to add boolean (tinyint) row in payments table
 * Lets call it: payment_due_date
 */
$payments = Payment::select( 'next_due_date')
  ->where(function($q){
    $q->whereDate('next_due_date', Carbon::now()->addDays(4))
      ->orWhere('payment_due_date', 1);
  })
  ->get();

// Update new rows to save for future fetching
Payment::query()
  ->where('payment_due_date', 0)
  ->whereDate('next_due_date', Carbon::now()->addDays(4))->update(['payment_due_date' => 1]);

If you want to save the state you have many options.
Most convenient and fast ways are to save them in either cache or database itself.

Solution 1: saving in cache: (Receomented if you won't have too many rows in payments table)

$payments = Payment::select( 'next_due_date')
  ->where(function($q){
    // Get rows that are current next_due_date or is cached
    $q->whereDate('next_due_date', Carbon::now()->addDays(4))
      ->when(cache()->has('saved_payment_ids'), function(){
        $q->orWhereIn('id', cache()->get('saved_payment_ids') ?? []);
      });
  })
  ->get();

// Remember forever current rows in cache
cache()->forever('saved_payment_ids', $payments->pluck('id')->toArray());

Solution 2: saving in db (Receomented way)

/**
 * First you have to add boolean (tinyint) row in payments table
 * Lets call it: payment_due_date
 */
$payments = Payment::select( 'next_due_date')
  ->where(function($q){
    $q->whereDate('next_due_date', Carbon::now()->addDays(4))
      ->orWhere('payment_due_date', 1);
  })
  ->get();

// Update new rows to save for future fetching
Payment::query()
  ->where('payment_due_date', 0)
  ->whereDate('next_due_date', Carbon::now()->addDays(4))->update(['payment_due_date' => 1]);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文