2017-06-03 4 views
0

KnpTimeBundleを使用して前回の日時を取得しようとしています。
documentaion iが差分(にアセスするヘルパークラスを使用する必要があり、言うように)機能:
は私controller.phpに見てみましょう:KnpTimeBundleを使用して2つのDateTimeオブジェクトの違いを返します。

use Knp\Bundle\TimeBundle\Templating\Helper as Helper; 

/** 
* @Route("/test",name="test") 
* @Method({"GET","POST"}) 
*/ 
public function testAction(Request $request){ 
$date = new \DateTime("now"); 
$h=new Helper();// here i got a 404 error 
$ago=$h->diff($date); 
return $this->render('test.html.twig', array()); 
} 

しかし、この方法のdidntのでヘルパークラスを呼び出します私のために働く、誰かが私にトリックを行う正しい方法を与えることができます。

答えて

0

私は、バンドルのための必要性自分のサービスを作成します。私のservices.ymlで

<?php 
namespace AppBundle\Services; 

class Helpers { 
public function pluralize($count, $text) 
{ 
    return $count . (($count == 1) ? (" $text") : (" ${text}s")); 
} 

function ago($datetime) 
{ 
    $interval = date_create('now')->diff($datetime); 
    $suffix = ($interval->invert ? ' ago' : ''); 
    if ($v = $interval->y >= 1) return $this->pluralize($interval->y, 'year') . $suffix; 
    if ($v = $interval->m >= 1) return $this->pluralize($interval->m, 'month') . $suffix; 
    if ($v = $interval->d >= 1) return $this->pluralize($interval->d, 'day') . $suffix; 
    if ($v = $interval->h >= 1) return $this->pluralize($interval->h, 'hour') . $suffix; 
    if ($v = $interval->i >= 1) return $this->pluralize($interval->i, 'minute') . $suffix; 
    return $this->pluralize($interval->s, 'second') . $suffix; 
} 

: サービス:

app.helpers: 
    class: AppBundle\Services\Helpers 
    arguments: [ "@doctrine.orm.entity_manager" , "@service_container" ] 

その後、私はちょうどと呼ばれていない:

$helpers = $this->get("app.helpers"); 
$helpers->ago($date); 
関連する問題