Laravel Вставка данных только последний список или данные - PullRequest
0 голосов
/ 29 января 2019

Я хочу вставить данные, специально посмотрите на мою страницу.

enter image description here

Когда я установлю время, данные будут вставлены.Но то, что у меня есть сейчас, это то, что вставленные данные являются самыми последними данными в этой таблице, а это January-31-2019 как я могу это исправить, поэтому, когда я вставляю данные, данные будут вставлять любые данные, перечисленные в таблице.

Контроллер

public function insertSchedule(Request $request)
{
    $employeeTimeSet = new Schedule;
    $employeeTimeSet->employee_no = $request->input('hidEmployeeno');
    $employeeTimeSet->last_name = $request->input('hidEmployeeLast');
    $employeeTimeSet->first_name = $request->input('hidEmployeeFirst');
    $employeeTimeSet->date_today = $request->input('dateToday');
    $employeeTimeSet->time_in = $request->input('timeIn');
    $employeeTimeSet->time_out = $request->input('timeOut');
    $employeeTimeSet->save();

    $notification = array(
        'message' => 'Click PLAN TIME! Employee Time Set!',
        'alert-type' => 'success'
    );

    return redirect()->back()->with($notification, 'Employee Time Set');
}

Просмотр

{!! Form::open(['action' => 'Admin\EmployeeFilemController@insertSchedule', 'method' => 'POST']) !!}
<div class="row">
    <div class="form-group col-md-12">
        <small>Employee No. and Name:</small>
        <b><i> {{ $employee->employee_no }} : {{ $employee->last_name }}, {{ $employee->first_name }}</i></b>
        <input type="hidden" name="hidEmployeeno" value='<?php echo $employee->employee_no ?>'>
        <input type="hidden" name="hidEmployeeLast" value='<?php echo $employee->last_name ?>'>
        <input type="hidden" name="hidEmployeeFirst" value='<?php echo $employee->first_name ?>'>
        <hr>
    </div>
</div>
@php
    $today = today(); 
    $dates = []; 

    for($i=1; $i < $today->daysInMonth + 1; ++$i) {
        $dates[] = \Carbon\Carbon::createFromDate($today->year, $today->month, $i)->format('F-d-Y');
    }
@endphp

<table class="table">
    <thead>
    <tr>
        <th>DATE TODAY</th>
        <th>TIME IN</th>
        <th>TIME OUT</th>
        <th>ACTION</th>
    </tr>
    </thead>
    <tbody>
    @foreach($dates as $date)
        <tr>
            <td><b>{{ $date }}</b></td>
            <input type="hidden" name="dateToday" value="{{ $date }}">
            <td><input type="time" name="timeIn" class="form-control col-md-10"></td>
            <td><input type="time" name="timeOut" class="form-control col-md-10"></td>
            <td> {{Form::button('<i class="fa fa-clock">&nbsp;&nbsp;SET TIME</i>',['type' => 'submit','class' => 'btn btn-warning btn-sm',  'style'=>"display: inline-block;"])}}</td>
        </tr>
    @endforeach
    </tbody>
</table>
{!! Form::close() !!}

Ответы [ 3 ]

0 голосов
/ 29 января 2019

Проблема в том, что вы используете одну форму с несколькими входами в нее, и для них нет уникального имени.Если вы проверите код, ваша форма будет иметь 31 вход с именем timeIn и 31 вход с именем timeOut .

Когда вы отправляете форму, она выбирает последнюю timeIn и timeOut .

Два решения

  1. Создание нескольких форм (поместите теги формы в цикл while,на странице будет создано 31 форма)
  2. Используйте ajax для отправки данных на сервер.
0 голосов
/ 29 января 2019

В дополнение к ответу @ Swaroop есть еще одна опция.Вы можете сделать массив этих полей в одной форме и отправить их.и на стороне сервера вам придется перебирать опубликованный массив, чтобы вы могли обрабатывать их дальше.

0 голосов
/ 29 января 2019

Вам необходимо использовать [] для имен текстовых полей.Пример: name [] и вам нужно использовать цикл для публикации.Пример - как получить сообщение из текстовых полей с тем же именем в php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...