2016-01-26 2 views
1

У меня есть эта форма для сотрудников, и каждый сотрудник имеет плату за каждый год, администратор должен заполнить данные и сохранить их, а также предыдущие данные должны быть заполнены на правильное место на форме в противном случае, если нет данных в поле ввода должно быть пустым, вот какие данные должны выглядеть следующим образом:Laravel: отобразить данные в таблице

enter image description here

но то, что я получаю это: enter image description here

М.Ю. КОД: Контроллер

$years = Year::with('employeeData')->get(); 

    $indicators = Indicator::all(); 
return view('sustainability-data.input-data', compact('years', 'indicators')); 

Посмотреть

@foreach($employees as $index=>$employee) 
        <tr> 
         <td>{{$employee->name}}</td> 
         @foreach($years as $year) 
          <td> 
           @foreach($year->employeeData as $datum) 
             @if($datum->employee_id == $employee->id) 
              {!! Form::text('row[$index][value]' ,$datum->value,['class' => 'form-control']) !!} 
             @endif 

           @endforeach 
          </td> 
         @endforeach 

Кто-нибудь есть идеи, как решить эту проблему, прежде чем я сойду с ума, я перепробовал много способов, но я не смог решить эту проблему

ответ

2

Похоже, проблема связана со структурой @foreach($year->employeeData as $datum). Я предполагаю, что если у сотрудника еще нет данных за данный год, то @if($datum->employee_id == $employee->id) никогда не будет оцениваться до true. Если это так, тогда код, который выводит поле формы, не будет работать.

Самый простой способ преобразования, что вы в настоящее время является замена @foreach с чем-то вроде следующего:

@if($year->emplyeeData()->where('employee_id', $employee->id)->count()) 
    {!! Form::text('row[$index][value]', $year->emplyeeData()->where('employee_id', $employee->id)->get()->value, ['class' => 'form-control']) !!} 
@else 
    {!! Form::text('row[$index][value]', '', ['class' => 'form-control']) !!} 
@endif 

Пожалуйста, обратите внимание, что я сделал несколько предположений о том, как ваши модели настроены таким образом, это может потребоваться адаптация кода.

Я также хотел бы удалить эту логику из представления и, возможно, добавить метод к вашей модели Employee с именем getDataForYear, который возвращает значение или пустую строку.

+0

Большое спасибо, я очень ценю вашу помощь: D –

+1

Нет проблем. Я также заметил, что '' row [$ index] [value] ''должно быть в двойных кавычках. Текущая версия не заменит «$ index» своим значением. –

+0

Да, вы правы Я тоже это замечаю, Большое вам спасибо: D –

Смежные вопросы