Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在laravel中创建出席人数_Php_Mysql_Laravel - Fatal编程技术网

Php 在laravel中创建出席人数

Php 在laravel中创建出席人数,php,mysql,laravel,Php,Mysql,Laravel,嗯。。我已经为销售人员创建了一个考勤系统,我的数据库结构是 用户(id、名称) 出席人数(收件人id、用户id、创建时间) 这是我在创建考勤时使用的数据 $final = array:2 [▼ 0 => array:3 [▼ "id" => 6 "name" => "Talha Munshi" "attendance" => array:4 [▼ 0 => array:3 [▼ "attendance" => "P" "advance" =

嗯。。我已经为销售人员创建了一个考勤系统,我的数据库结构是

  • 用户(id、名称)
  • 出席人数(收件人id、用户id、创建时间)
  • 这是我在创建考勤时使用的数据

    $final = array:2 [▼
    0 => array:3 [▼
    "id" => 6
    "name" => "Talha Munshi"
    "attendance" => array:4 [▼
      0 => array:3 [▼
        "attendance" => "P"
        "advance" => "0"
        "date" => Carbon {#250 ▼
          +"date": "2017-07-16 08:07:00.000000"
          +"timezone_type": 3
          +"timezone": "Asia/Karachi"
        }
      ]
      1 => array:3 [▼
        "attendance" => "P"
        "advance" => "0"
        "date" => Carbon {#249 ▼
          +"date": "2017-07-17 08:07:00.000000"
          +"timezone_type": 3
          +"timezone": "Asia/Karachi"
        }
      ]
      2 => array:3 [▼
        "attendance" => "A"
        "advance" => "0"
        "date" => Carbon {#248 ▼
          +"date": "2017-07-18 08:07:00.000000"
          +"timezone_type": 3
          +"timezone": "Asia/Karachi"
        }
       ]
       3 => array:3 [▼
        "attendance" => "L"
        "advance" => "0"
        "date" => Carbon {#241 ▼
          +"date": "2017-07-19 08:07:00.000000"
          +"timezone_type": 3
          +"timezone": "Asia/Karachi"
            }  
          ]
        ]
      ]
      1 => array:3 [▶]
    ]
    
    $days_count = 20; //From first till today (20th)
    
    现在,我尝试了一些编码,以垂直格式填充每天的出席人数,视图中编写的代码如下:

    <table class="table-responsive table-condensed table-striped table-hover table-bordered">
        <thead>
            <tr>
                <td>Salesman</td>
                <?php for($i = 1; $i <= $days_count; $i++){ ?>
                <td><?php echo $i; ?></td>
                <?php }?>
            </tr>
        </thead>
        <tbody>
            @forelse($final as $attend)
                <tr>
                    <td>{{ $attend['name'] }}</td>
                    <?php for($i = 1; $i < $days_count; $i++){
                        $make_date = date("Y-m")."-".$i;
                    ?>
    
                    <?php foreach($attend['attendance'] as $att){ 
                        if($att['date'] == $make_date){
                    ?>
                    <td><?php echo $att['attendance']; ?></td>
                    <?php } else{?> <td>-</td> <?php  } }?>
                    <?php }?>
                </tr>
                @empty
                <tr><td>No Salesman</td></tr>
            @endforelse
        </tbody>
    </table>
    
    所需输出:应该是什么


    第一个问题是这个块

    <?php foreach($attend['attendance'] as $att){ 
    if($att['date'] == $make_date){
    ?>
    <td><?php echo $att['attendance']; ?></td>
    <?php } else{?> <td>-</td> <?php  } }?>
    <?php }?>
    

    第一个问题是这个街区

    <?php foreach($attend['attendance'] as $att){ 
    if($att['date'] == $make_date){
    ?>
    <td><?php echo $att['attendance']; ?></td>
    <?php } else{?> <td>-</td> <?php  } }?>
    <?php }?>
    

    我想你对下一行的日期比较有问题

     if($att['date'] == $make_date){
    
     }
    
    在这里,
    $make_date
    将为您提供类似于
    2017-07-20
    的日期,您试图与碳
    DateTime
    进行比较,如
    2017-07-20 04:55:09
    这永远不会相等

    因此,您必须使用碳元素格式化
    $att['date']

    像这样:

    if($att['date']->format('Y-m-d') == $make_date){
    
    }
    

    我想你对下一行的日期比较有问题

     if($att['date'] == $make_date){
    
     }
    
    在这里,
    $make_date
    将为您提供类似于
    2017-07-20
    的日期,您试图与碳
    DateTime
    进行比较,如
    2017-07-20 04:55:09
    这永远不会相等

    因此,您必须使用碳元素格式化
    $att['date']

    像这样:

    if($att['date']->format('Y-m-d') == $make_date){
    
    }
    

    您可以将视图更改为以下内容

    <table class="table-responsive table-condensed table-striped table-hover table-bordered">
      <thead>
        <tr>
          <td>Salesman</td>
          <?php for($i = 1; $i <= $days_count; $i++){ ?>
          <td>
            <?php echo $i; ?>
          </td>
          <?php }?>
        </tr>
      </thead>
      <tbody>
        @forelse($final as $attend)
        <tr>
          <td>{{ $attend['name'] }}</td>
          <?php 
            for($i = 1; $i < $days_count; $i++){
              $make_date = date("Y-m")."-".$i;
              $set_attendance_for_day=false;
              $attendance_for_day ="-";
              foreach($attend['attendance'] as $att){
                if($att['date'] == $make_date){
                   $attendance_for_day = "P";
                } 
              } 
          ?>
          <td>
            <?php echo $attendance_for_day; ?>
          </td>
    
          <?php }?>
        </tr>
        @empty
        <tr>
          <td>No Salesman</td>
        </tr>
        @endforelse
      </tbody>
    </table>
    
    
    推销员
    @forelse($final as$Atteent)
    {{$attent['name']}
    @空的
    没有推销员
    @endforelse
    
    **根据评论更新

    <table class="table-responsive table-condensed table-striped table-hover table-bordered">
      <thead>
        <tr>
          <td>Salesman</td>
          <?php for($i = 1; $i <= $days_count; $i++){ ?>
          <td>
            <?php echo $i; ?>
          </td>
          <?php }?>
        </tr>
      </thead>
      <tbody>
        @forelse($final as $attend)
        <tr>
          <td>{{ $attend['name'] }}</td>
          <?php 
            for($i = 1; $i < $days_count; $i++){
              $make_date = date("Y-m")."-".$i;
              $set_attendance_for_day=false;
              $attendance_for_day ="-";
              foreach($attend['attendance'] as $att){
                if($att['date'] == $make_date){
                   $attendance_for_day = "P";
                } 
              } 
          ?>
          <td>
            <?php echo $attendance_for_day; ?>
            <?php if($i==20){ ?>
    
              ---------------------------------------------------
              <PLACE YOUR FORM HERE>
              ---------------------------------------------------
            <?php } ?>
          </td>
    
          <?php }?>
        </tr>
        @empty
        <tr>
          <td>No Salesman</td>
        </tr>
        @endforelse
      </tbody>
    </table>
    
    
    推销员
    @forelse($final as$Atteent)
    {{$attent['name']}
    ---------------------------------------------------
    ---------------------------------------------------
    @空的
    没有推销员
    @endforelse
    
    您可以将视图更改为以下内容

    <table class="table-responsive table-condensed table-striped table-hover table-bordered">
      <thead>
        <tr>
          <td>Salesman</td>
          <?php for($i = 1; $i <= $days_count; $i++){ ?>
          <td>
            <?php echo $i; ?>
          </td>
          <?php }?>
        </tr>
      </thead>
      <tbody>
        @forelse($final as $attend)
        <tr>
          <td>{{ $attend['name'] }}</td>
          <?php 
            for($i = 1; $i < $days_count; $i++){
              $make_date = date("Y-m")."-".$i;
              $set_attendance_for_day=false;
              $attendance_for_day ="-";
              foreach($attend['attendance'] as $att){
                if($att['date'] == $make_date){
                   $attendance_for_day = "P";
                } 
              } 
          ?>
          <td>
            <?php echo $attendance_for_day; ?>
          </td>
    
          <?php }?>
        </tr>
        @empty
        <tr>
          <td>No Salesman</td>
        </tr>
        @endforelse
      </tbody>
    </table>
    
    
    推销员
    @forelse($final as$Atteent)
    {{$attent['name']}
    @空的
    没有推销员
    @endforelse
    
    **根据评论更新

    <table class="table-responsive table-condensed table-striped table-hover table-bordered">
      <thead>
        <tr>
          <td>Salesman</td>
          <?php for($i = 1; $i <= $days_count; $i++){ ?>
          <td>
            <?php echo $i; ?>
          </td>
          <?php }?>
        </tr>
      </thead>
      <tbody>
        @forelse($final as $attend)
        <tr>
          <td>{{ $attend['name'] }}</td>
          <?php 
            for($i = 1; $i < $days_count; $i++){
              $make_date = date("Y-m")."-".$i;
              $set_attendance_for_day=false;
              $attendance_for_day ="-";
              foreach($attend['attendance'] as $att){
                if($att['date'] == $make_date){
                   $attendance_for_day = "P";
                } 
              } 
          ?>
          <td>
            <?php echo $attendance_for_day; ?>
            <?php if($i==20){ ?>
    
              ---------------------------------------------------
              <PLACE YOUR FORM HERE>
              ---------------------------------------------------
            <?php } ?>
          </td>
    
          <?php }?>
        </tr>
        @empty
        <tr>
          <td>No Salesman</td>
        </tr>
        @endforelse
      </tbody>
    </table>
    
    
    推销员
    @forelse($final as$Atteent)
    {{$attent['name']}
    ---------------------------------------------------
    ---------------------------------------------------
    @空的
    没有推销员
    @endforelse
    
    这将搜索考勤中是否存在日期并相应打印

    @forelse($final as $attend)
    <tr>
        <td>{{ $attend['name'] }}</td>
        @for ($i = 1; $i < $days_count; $i++)
        {{--*/ $make_date = Carbon\Carbon::create(date("Y-m")."-".$i); /*--}}
        {{--*/ $key = array_search($make_date, array_column($attend['attendance'], 'date')); /*--}}
        @if ($key !== FALSE)
            <td>{{ $att['attendance'][$key]['attendance'] }}</td>
        @else
            <td>-</td>
        @endif
        @endfor
    </tr>
    @empty
    <tr><td>No Salesman</td></tr>
    @endforelse
    
    @forelse($final as$attent)
    {{$attent['name']}
    @对于($i=1;$i<$days\u count;$i++)
    {{--*/$make_date=Carbon\Carbon::create(日期(“Y-m”)。“-”$i);/*--}
    {--*/$key=array\u search($make\u date,array\u column($attent['attention'],'date'));/*-}
    @如果($key!==FALSE)
    {{$att['Attention'][$key]['Attention']}
    @否则
    -
    @恩迪夫
    @结束
    @空的
    没有推销员
    @endforelse
    
    这将搜索考勤中是否存在日期并相应打印

    @forelse($final as $attend)
    <tr>
        <td>{{ $attend['name'] }}</td>
        @for ($i = 1; $i < $days_count; $i++)
        {{--*/ $make_date = Carbon\Carbon::create(date("Y-m")."-".$i); /*--}}
        {{--*/ $key = array_search($make_date, array_column($attend['attendance'], 'date')); /*--}}
        @if ($key !== FALSE)
            <td>{{ $att['attendance'][$key]['attendance'] }}</td>
        @else
            <td>-</td>
        @endif
        @endfor
    </tr>
    @empty
    <tr><td>No Salesman</td></tr>
    @endforelse
    
    @forelse($final as$attent)
    {{$attent['name']}
    @对于($i=1;$i<$days\u count;$i++)
    {{--*/$make_date=Carbon\Carbon::create(日期(“Y-m”)。“-”$i);/*--}
    {--*/$key=array\u search($make\u date,array\u column($attent['attention'],'date'));/*-}
    @如果($key!==FALSE)
    {{$att['Attention'][$key]['Attention']}
    @否则
    -
    @恩迪夫
    @结束
    @空的
    没有推销员
    @endforelse
    
    试试这个。删除额外的循环。创建标志变量并检查它

    <?php for($i = 1; $i < $days_count; $i++){
        $make_date = date("Y-m")."-".$i;
        $set_attendance_for_day=false;
        foreach($attend['attendance'] as $att){
            if($att['date'] == $make_date){
                $set_attendance_for_day=true;
                ?>
                <td><?php echo $att['attendance']; ?></td>
            <?php } ?>
        <?php } ?>
        <?php if (!$set_attendance_for_day) { ?>
            <td>-</td>
        <?php } 
           else{ ?>
            <td>P</td>
        <?php  }
        ?>
    <?php }?>
    
    
    -
    P
    
    试试这个。删除额外的循环。创建标志变量并检查它

    <?php for($i = 1; $i < $days_count; $i++){
        $make_date = date("Y-m")."-".$i;
        $set_attendance_for_day=false;
        foreach($attend['attendance'] as $att){
            if($att['date'] == $make_date){
                $set_attendance_for_day=true;
                ?>
                <td><?php echo $att['attendance']; ?></td>
            <?php } ?>
        <?php } ?>
        <?php if (!$set_attendance_for_day) { ?>
            <td>-</td>
        <?php } 
           else{ ?>
            <td>P</td>
        <?php  }
        ?>
    <?php }?>
    
    
    -
    P
    

    那么有什么问题?为什么要使用
    @forelse
    ?它应该是
    @foreach
    ?看看当前输出!所有破折号!它应该在匹配的日期中写上“P”或“A”或“L”。它应该在16、17、18和19日添加出席人数。添加输出样本o有什么问题?为什么使用
    @forelse
    ?它应该是
    @foreach
    ?看看当前输出!所有破折号!它应该在匹配的日期中写上“P”或“A”或“L”。它应该在16、17、18和19添加出席人数并添加一个输出样本井。。它显示了正确的块数,但仍然不会在右侧的spotsWell上回显P A或L。。它显示了正确的块数,但仍然不会在右边的斑点上回显P A或L谢谢!如果我必须在最后一个日期(即20日)插入表格,该怎么办。我该怎么做?像这样的表单将有name=“id[]”的输入,并选择name=“Attention[]”抱歉,我不明白你在问什么嘿,谢谢!如果我必须在最后一个日期(即20日)插入表格,该怎么办。我该怎么做?像这样的表单将有name=“id[]”的输入,并选择name=“Attention[]”抱歉,我不明白你在问什么嘿,谢谢!如果我必须在最后一个日期(即20日)插入表格,该怎么办。我该怎么做?嘿,谢谢!如果我必须在最后一个日期(即20日)插入表格,该怎么办。我该怎么做?