laravel 我在 4 天前在视图 table 中获取价值 如何保持一旦获取价值显示在 table 如果日期晚于任何时间
laravel im getting value in view table before 4day how to keep once get value show in table if date after any time
使用此代码,我可以在视图中获取 4 天前的数据 table,我想在获取数据后显示它显示在视图中的任何时间 table
$dueDate = Carbon::now()->addDays(4);
Payment::select( 'next_due_date')->whereDate('next_due_date', $dueDate)->get();
如果你想保存状态,你有很多选择。
最方便快捷的方法是将它们保存在 cache
或 database
本身中。
解决方案 1:保存在缓存中:(如果您在 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());
解决方案 2:保存在数据库中(改进的方式)
/**
* 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]);
使用此代码,我可以在视图中获取 4 天前的数据 table,我想在获取数据后显示它显示在视图中的任何时间 table
$dueDate = Carbon::now()->addDays(4);
Payment::select( 'next_due_date')->whereDate('next_due_date', $dueDate)->get();
如果你想保存状态,你有很多选择。
最方便快捷的方法是将它们保存在 cache
或 database
本身中。
解决方案 1:保存在缓存中:(如果您在 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());
解决方案 2:保存在数据库中(改进的方式)
/**
* 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]);