php - Laravel PHP:从递归函数中获取值
问题描述
我有一个invoice_schedule_table
结构如下:
id、previous_invoice_schedule_id、due_date
7559、01-06-2021
7772、7559、15-06-2021
7773、7772、20-06-2021
我正在尝试创建一个循环/递归函数,如果我从 UI 打开任何发票计划(ID:7559、7772),最终将返回最后一个到期日期(20-06-2021)。
function latestRescheduledInvoiceSchedule($invoiceScheduleId) {
$rescheduledPaymentSchedule = InvoiceSchedule::where('previous_invoice_schedule_id', $invoiceScheduleId)->first();
if(isset($rescheduledPaymentSchedule)) {
latestRescheduledInvoiceSchedule($rescheduledPaymentSchedule->id);
}
}
但是一旦达到最后一条记录,我无法弄清楚如何获得价值。
对此有任何帮助吗?
解决方案
您应该在未设置时检索该due_date
值,在这种情况下,它的 id 为 7773:$rescheduledPaymentSchedule
function latestRescheduledInvoiceSchedule($invoiceScheduleId) {
$rescheduledPaymentSchedule = InvoiceSchedule::where('previous_invoice_schedule_id', $invoiceScheduleId)->first();
if($rescheduledPaymentSchedule) {
latestRescheduledInvoiceSchedule($rescheduledPaymentSchedule->id);
} else {
// There is no further values, retrieve the `due_date` of the current invoiceScheduleId
$last_record = InvoiceSchedule::find($invoiceScheduleId);
if ($last_record) {
$last_due_date = $last_record->due_date;
}
}
}
推荐阅读
- sql - sql 死于请求流
- python - QTableWidget 验证数范围
- python - 如何将列表项添加到字典中已有值的键中?
- r - postGIS:ST_MakeEnvelope() 为什么只有一个类似的查询有效?
- r - double type object (characters and numbers) to dataframe
- python - Text Translation if column value is equal to language
- python - Take my data from my computer and Verify that data is not stolen
- python - gunicorn and PDF
- java - 无法将“java.lang.String”类型的值转换为所需的“java.time.LocalDate”类型
- sql - oracle 10g float formatting