生成格式(年/月/类型/数)的数字-Laravel / PHP

时间:2018-07-12 00:16:52

标签: php laravel date

我需要添加变量以返回数字。

我当前在控制器中的代码。

    /*Generate number*/
    $query = Certificate::latest()->first(); //get last query
    $ex = explode('/', $query->number); //explode last number from DB
    $type = strtoupper(Request::segment(3)); //get type from url

    if(empty($query->number)) {
        $number = '1';
        $nextNumber = date('Y/m').'/'.$type.'/'.$number;
    } else {
        $number = $ex[3]+1;
        $nextNumber = date('Y/m').'/'.$type.'/'.$number;
    }

我当前在模板中的代码。

{!! Form::text('number', $nextNumber, ['class'=>'form-control', 'required']) !!}

我的代码返回号码YEAR / MONTH / TYPE / NUMBER-Screenshot in view

现在它无法正常工作

  • 2018/07 / WK / 6
  • 2018/07 / WK / 7
  • 2018/07 / S / 8
  • 2018/07 / WK / 9
  • 2018/07 / WK / 10
  • 2018/07 / S / 11
  • 2018/07 / PT / 12 ... 13,14,15,16,17,18 ++ [...]

我需要为TYPE和新月重新设置编号。

请查看操作示例:

  • 2018/07 / WK / 1
  • 2018/07 / WK / 2
  • 2018/07 / S / 1
  • 2018/07 / WK / 3
  • 2018/07 / WK / 4
  • 2018/07 / S / 2
  • 2018/07 / PT / 1

新月的示例:

  • 2018/08 / WK / 1
  • 2018/08 / S / 1
  • 2018/08 / PT / 1
  • 2018/08 / WK / 2
  • 2018/08 / WK / 3
  • 2018/08 / S / 2
  • 2018/08 / PT / 2

如果有人将我引向解决方案,我将不胜感激。

最诚挚的问候:)

1 个答案:

答案 0 :(得分:0)

根据您的情况,我认为从数据库中获取数据时必须添加条件。

$type = strtoupper(Request::segment(3)); //get type from url
$query = Certificate::where('number', 'LIKE', '%/'.$type.'/%')
              ->latest()->first(); //get last query
$ex = explode('/', $query->number); //explode last number from DB

这将返回数据库中指定$ type的最后一个数字。

如果可能的话,我建议在数据库表的另一列中保存类型。