Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 22-09-2014 19:03:20

dand91
Nouveau membre
Date d'inscription: 22-09-2014
Messages: 2

une date dans entity, l'afficher en view

Bonsoir,

je vien de debuté dans Zend Framework 2 et j'ai integré Doctrine 2 ORM. je suis deja bloqué et je n'arrive plus a avancez. si vous pourriez me donner un coup de main je vous en serait reconnaissant svp.
j'ai donc creez un module donc nommée Article.
J'ai creez mon Entity avec mes differente proprieté de ma table ou il y'a  une colonne insertion( qui est une datetime)

quand je veux l'afficher dans mon view(index.phtml), je recois un code d'erreur comme quoi l'escapeHTML ne peu pas interagir avec cette objet, et si j'enleve l'escapeHTML il est dit que je ne peu pas convertir un datetime en string.

pourriez vous m'aider a juste imprimé la date svp? ( dans ma db le format est ainsi: 2014-09-21 01:25:02)

index.phtml

<?php

$titre = 'Articles';
$this->headTitle($titre);
?>
<h1><?php echo $this->escapeHtml($titre); ?></h1>
<p>
    <a href="<?php echo $this->url('article', array('action'=>'add'));?>">Rajouter une nouvelle article</a>
</p>

<table class="table">
<tr>
    <th>titre</th>
    <th>Contenu_intro</th>
    <th>Contenu_full</th>
    <th>Status</th>
    <th>Insertion</th>
    <th>id_categorie</th>
    <th>&nbsp;</th>
</tr>
<?php foreach ($articles as $article) : ?>
<tr>
    <td><?php echo $this->escapeHtml($article->titre);?></td>
    <td><?php echo $this->escapeHtml($article->contenu_intro);?></td>
    <td><?php echo $this->escapeHtml($article->contenu_full);?></td>
    <td><?php echo $this->escapeHtml($article->status);?></td>
    <td><?php echo $this->$article->insertion;?></td>              <-- ici le souci
    <td><?php echo $this->escapeHtml($article->id_categorie);?></td>
    <td>
        <a href="<?php echo $this->url('article',
            array('action'=>'edit', 'id' => $article->id));?>">Modifier</a>
        <a href="<?php echo $this->url('article',
            array('action'=>'delete', 'id' => $article->id));?>">Supprimer</a>
    </td>
</tr>
<?php endforeach; ?>
</table>

Article.php

<?php

namespace Article\Entity;

use Doctrine\ORM\Mapping as ORM;
use Zend\InputFilter\InputFilter;
use Zend\InputFilter\Factory as InputFactory;
use Zend\InputFilter\InputFilterAwareInterface;
use Zend\InputFilter\InputFilterInterface;

/**
*
* @ORM\Entity
* @ORM\Table(name="article")
* @property string $contenu_intro
* @property string $contenu_full
* @property datetime $insertion
* @property string $titre
* @property int $id
* @property int $status
* @property int $id_categorie

*/
class Article implements InputFilterAwareInterface
{
    protected $inputFilter;

    /**
     * @ORM\Id
     * @ORM\Column(type="integer");
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Column(type="string")
     */
    protected $contenu_intro;

    /**
     * @ORM\Column(type="string")
     */
    protected $titre;
   
    /**
     * @ORM\Column(type="string")
     */
    protected $contenu_full;
   
    /**
     * @ORM\Column(type="integer")
     */
    protected $id_categorie;
   
    /**
     * @ORM\Column(type="datetime")
     */
    protected $insertion;
   
        /**
     * @ORM\Column(type="integer")
     */
    protected $status;

    /**
     * Magic getter to expose protected properties.
     *
     * @param string $property
     * @return mixed
     */
    public function __get($property)
    {
        return $this->$property;
    }

    /**
     * Magic setter to save protected properties.
     *
     * @param string $property
     * @param mixed $value
     */
    public function __set($property, $value)
    {
        $this->$property = $value;
    }

ArticleController.php

<?php

namespace Article\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Article\Entity\Article;
use Article\Form\ArticleForm;
use Doctrine\ORM\EntityManager;

class ArticleController extends AbstractActionController
{
    protected $em;

    public function getEntityManager()
    {
        if (null === $this->em) {
            $this->em = $this->getServiceLocator()->get('doctrine.entitymanager.orm_default');
        }
        return $this->em;
    }

    public function indexAction()
    {
        return new ViewModel(array(
            'articles' => $this->getEntityManager()->getRepository('Article\Entity\Article')->findAll(),
        ));
    }
}

il est sure que se n'est pas une erreur de syntax, mais juste que je ne sais pas quel methode utilisé pour afficher la date.

merci d'avance de votre aide smile

Hors ligne

 

#2 22-09-2014 22:15:26

dand91
Nouveau membre
Date d'inscription: 22-09-2014
Messages: 2

Re: une date dans entity, l'afficher en view

Solution:

<td><?php echo $this->dateFormat($article->insertion,IntlDateFormatter::LONG,IntlDateFormatter::SHORT,"en_US");?></td>

documentation:

http://framework.zend.com/manual/2.3/en … lpers.html

Hors ligne

 

#3 23-09-2014 10:16:36

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: une date dans entity, l'afficher en view

Salut, tu peux directement utiliser la fonction format() de l'objet datetime c'est pas lié au framework ton problème wink.

http://php.net/manual/fr/datetime.format.php (premier exemple)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages