Как показать разные значения в таблице представлений, используя Carbon 'diffInDays'? - PullRequest
0 голосов
/ 24 марта 2019

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

У меня нет таблицы в таблице базы данных для хранения разницы дней. Я просто показываю результат в виде.

Я использую версию углерода 2.16

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

Мой контроллер

use Carbon\Carbon;

public function index()
    {

        $reservs = ReservasModelo::get();

        $test = ReservasModelo::orderby('FechavencR')->pluck('FechavencR');     


        foreach ($test as $tes) {


                $difer =  Carbon::now();

                $fini = $difer->diffInDays($tes);
        }


        return view('reservas.index', compact('reservs','fini'));
    }

Мой взгляд

<tbody>
                          @foreach($reservs as $reserv)

                              <tr>
                                  <td class="text-center">{{ $reserv->idReservas}}</td>
                                  <td class="text-center">{{ $reserv->FechavencR}}</td>
                                  <td class="text-center">{{ $fini}}<td>
                                  <td class="text-center">{{ $reserv->UnidadMedida}}</td>
                                  <td class="text-center">{{ $reserv->Racion}}</td>
                                  <td class="text-center">{{ $reserv->RacionMes}}</td>
                                  <td class="text-center">{{ $reserv->CantNece}}</td>
                                  <td class="text-center">{{ $reserv->Existencia}}</td>
                                  <td class="text-center">{{ $reserv->Variac}}</td>
                                  <td class="text-center">{{ $reserv->idInventariosR}}</td>
                                  <td class="text-center">{{ $reserv->idSucursalesR}}</td>
                                  <td class="d-flex">
                                    @csrf
                                      <a href="{{ route('reservas.show', $reserv->idReservas)}}" class="btn btn-info">Ver</a>
                                      <a href="{{ route('reservas.edit', $reserv->idReservas)}}" class="btn btn-primary">Editar</a>
                                      <form action="{{ route('reservas.destroy', $reserv->idReservas)}}" method="POST">
                                        @csrf
                                        @method('DELETE')
                                       <button class="btn btn-danger" type="submit">Eliminar</button>
                              </form>

                                  </td>

                              </tr>

                          @endforeach

                        </tbody>

Моя таблица базы данных

reservas = [idReservas, FechavencR, UnidadMedida, Racion, RacionMes, CantNece, Existencia, Variac, idInventariosR, idSucursalesR] <</p>

Я хочу показать в таблице разницу дней с соответствующей датой истечения срока действия.

Кстати, извините за плохой английский.

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

Я тоже нашел способ сделать это.

Модель

use Illuminate\Database\Eloquent\Model;
use Carbon\Carbon;
class ReservasModelo extends Model
{

protected $table='reservas';

      protected $primaryKey='idReservas';

      protected $fillable = array ('idReservas','FechavencR','UnidadMedida','Racion','RacionMes','CantNece','Existencia','Variac','idInventariosR','idSucursalesR');


public function vencidos()
      {
        $difer =  Carbon::now();
        $fini = $difer->diffInDays($this->FechavencR,false);
        return $fini;

      }


}

Вид

                   <tbody>
                          @foreach($reservs as $reserv)

                              <tr>
                                  <td class="text-center">{{ $reserv->idReservas}}</td>
                                  <td class="text-center">{{ $reserv->idInventariosR}}</td>
                                  <td class="text-center">{{ $reserv->idSucursalesR}}</td>
                                  <td class="text-center">{{ $reserv->FechavencR}}</td>
                                  <td class="text-center">{{ $reserv->UnidadMedida}}</td>
                                  <td class="text-center">{{ $reserv->Racion}}</td>
                                  <td class="text-center">{{ $reserv->RacionMes}}</td>
                                  <td class="text-center">{{ $reserv->CantNece}}</td>
                                  <td class="text-center">{{ $reserv->Existencia}}</td>
                                  <td class="text-center">{{ $reserv->Variac}}</td>
                                  <td class="text-center">{{ $reserv->vencidos()}}</td>
                                  <td class="d-flex">
                                    @if(auth()->user()->tipo!='UsuarioBasico')
                                    @csrf
                                      <a href="{{ route('reservas.show', $reserv->idReservas)}}" class="btn btn-info btn-sm">Ver</a>
                                      <a href="{{ route('reservas.edit', $reserv->idReservas)}}" class="btn btn-primary btn-sm">Editar</a>
                                      <form action="{{ route('reservas.destroy', $reserv->idReservas)}}" method="POST">
                                        @csrf
                                        @method('DELETE')
                                       <button class="btn btn-danger btn-sm" type="submit">Eliminar</button>
                                      </form>
                                    @endif
                                  </td>

                              </tr>

                          @endforeach

                        </tbody>

0 голосов
/ 24 марта 2019
public function index()
    {

        $reservs = ReservasModelo::get()->toArray();

        $test = ReservasModelo::orderby('FechavencR')->pluck('FechavencR');     


        foreach ($test as $key=>$tes) {


                $difer =  Carbon::now();

                $reservs[$key]['fini'] = $difer->diffInDays($tes);
        }


        return view('reservas.index', compact('reservs'));
    }
  @foreach($reservs as $reserv)

      <tr>
          <td class="text-center">{{ $reserv['idReservas'] }}</td>
          <td class="text-center">{{ $reserv['FechavencR'] }}</td>
          <td class="text-center">{{ $reserv['fini'] }}<td>
          <td class="text-center">{{ $reserv['UnidadMedida'] }}</td>
          <td class="text-center">{{ $reserv['Racion'] }}</td>
          <td class="text-center">{{ $reserv['RacionMes'] }}</td>
          <td class="text-center">{{ $reserv['CantNece'] }}</td>
          <td class="text-center">{{ $reserv['Existencia']}}</td>
          <td class="text-center">{{ $reserv['Variac'] }}</td>
          <td class="text-center">{{ $reserv['idInventariosR'] }}</td>
          <td class="text-center">{{ $reserv['idSucursalesR'] }}</td>
          <td class="d-flex">
            @csrf
              <a href="{{ route('reservas.show', $reserv['idReservas'])}}" class="btn btn-info">Ver</a>
              <a href="{{ route('reservas.edit', $reserv['idReservas'])}}" class="btn btn-primary">Editar</a>
              <form action="{{ route('reservas.destroy', $reserv['idReservas'])}}" method="POST">
                @csrf
                @method('DELETE')
               <button class="btn btn-danger" type="submit">Eliminar</button>
      </form>

          </td>

      </tr>

  @endforeach
...