У меня есть сущность Symfony Equipment()
.Эта сущность представляет оборудование ... которое имеет элементы управления и контрольный период в днях (например, для каждого элемента управления требуется 30 дней).Элемент управления имеет дату, и я пытаюсь отобразить следующую необходимую дату элемента управления.
Вот мой объект оборудования:
<?php
namespace StockBundle\Entity;
use StockBundle\Entity\EquipmentControle;
/**
* Equipment
*
* @ORM\Table(name="stock_equipment")
* @ORM\Entity(repositoryClass="StockBundle\Repository\EquipmentRepository")
*/
class Equipment
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="EquipmentControle", mappedBy="equipment")
*/
private $controles;
/**
* @var float
*
* @ORM\Column(name="control_interval", type="integer", options={"default" : 0})
*/
private $controlInterval = 0;
public function getControles()
{
return $this->controles;
}
public function getControlInterval()
{
return $this->controlInterval;
}
public function setControles($controles)
{
$this->controles = $controles;
}
public function setControlInterval($controlInterval)
{
$this->controlInterval = $controlInterval;
}
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
public function getLastControlDate(){
$lastControle = null;
foreach ($this->getControles() as $c){
if($lastControle == null || $c->getDate() > $lastControle->getDate()){
$lastControle = $c;
}
}
return $lastControle == null ? null : $lastControle->getDate();
}
public function getNextControlDate(){
if($this->getLastControlDate() == null && $this->getControlInterval() > 0){
return new \DateTime("NOW");
}elseif ($this->getLastControlDate() != null && $this->getControlInterval() > 0){
return $this->getLastControlDate()->modify('+'.$this->getControlInterval().'day');
}else{
return null;
}
}
}
Я отображаю свои последние и следующие даты элемента управления таким образом, используяtwig:
{% if e.lastControlDate is not null %}{{ e.lastControlDate|date('d/m/Y') }}{% else %}-{% endif %}
{% if e.nextControlDate is not null %}{{ e.nextControlDate|date('d/m/Y') }}{% else %}-{% endif %}
Но похоже, что nextControlDate всегда вдвое больше предполагаемой даты.
У меня есть последний элемент управления 29/11/2018 и $controlInterval
для 10
и получите 19/12/2018 для следующего контроля.То же самое происходит при попытке изменить controlInterval.
Когда я отображаю nextControlDate
ДО lastControlDate
, я получаю одинаковую дату для элементов управления lastControl и nextControl ...
AnyПомогите, пожалуйста ?