0

Symfony2 アプリケーションで JEditable プラグインを使用しようとしています。PYSエンティティは、映画およびテレビ番組のエンティティです。それから私はエンティティを持っUsuarioています。Criticaユーザーの批判をプラグインで管理したい。ますます多くの例を分析しましたが、機能させることができません。値 (この場合は批評家のタイトル) はテンプレートでは更新されますが、データベースでは更新されません。ブラウザを更新すると、古い値が表示されます。

エラー:

ここに画像の説明を入力

これは私のJSです:

$('.edit').editable(function(value, settings) { 
        var data = {};
        data[this.id] = value;
        console.log(path);
        console.log(data);
        $.post(path, data);
            return(value);
    }, {
        indicator : 'Saving...',
        tooltip   : 'Click to edit...'
    });

これはルートです:

critica_ajax:
    locales: { es: "/gestion-critica/{pysStr}/", en: "/manage-critic/{pysStr}/" }
    defaults: { _controller: UsuarioBundle:Default:gestionarCritica }

これはコントローラーです:

public function gestionarCriticaAction($pysStr)
{
    $em = $this->getDoctrine()->getManager();
    $pys = $em->getRepository('PYSBundle:Pys')->findPys($pysStr);
    $usuario = $this->get('security.context')->getToken()->getUser();
    $critica = $em->getRepository('UsuarioBundle:Usuario')->findCritica($usuario, $pys);

    if(!$critica) 
    {
        $critica = new Critica($usuario, $pys);
    }

    $criTitulo = $this->request->get('value');
    $critica->setCriTitulo($criTitulo);

    $critica->setCriContenido($criContenido);
    $critica->setCriFecha(new \DateTime("now"));

    $em->persist($critica); 

    $em->flush();

    return new Response($criTitulo);
}

小枝テンプレート:

<h2 class="edit">{{ critica.criTitulo }}</h2>
<script>
    var path = "{{ path('critica_ajax', { 'pysStr': pelicula.pysStr}) }}";
</script>

編集 (Symfony の帰還)

Notice: Undefined property: Filmboot\UsuarioBundle\Controller\DefaultController::$request
in C:\Programming\xampp\htdocs\filmboot\src\Filmboot\UsuarioBundle\Controller\DefaultController.php line 236

THIS IS THE LINE 236: $criTitulo = $this->request->get('value');

at ErrorHandler ->handle ('8', 'Undefined property: Filmboot\UsuarioBundle\Controller\DefaultController::$request', 'C:\Programming\xampp\htdocs\filmboot\src\Filmboot\UsuarioBundle\Controller\DefaultController.php', '236', array('pysStr' => 'machete', 'em' => object(EntityManager), 'pys' => object(Pys), 'usuario' => object(Usuario), 'critica' => object(Critica))) 
    in C:\Programming\xampp\htdocs\filmboot\src\Filmboot\UsuarioBundle\Controller\DefaultController.php at line 236   +
    at DefaultController ->gestionarCriticaAction ('machete')
    at call_user_func_array (array(object(DefaultController), 'gestionarCriticaAction'), array('machete')) 
    in C:\Programming\xampp\htdocs\filmboot\app\bootstrap.php.cache at line 1003   +
    at HttpKernel ->handleRaw (object(Request), '1') 
    in C:\Programming\xampp\htdocs\filmboot\app\bootstrap.php.cache at line 977   +
    at HttpKernel ->handle (object(Request), '1', true) 
    in C:\Programming\xampp\htdocs\filmboot\app\bootstrap.php.cache at line 1103   +
    at ContainerAwareHttpKernel ->handle (object(Request), '1', true) 
    in C:\Programming\xampp\htdocs\filmboot\app\bootstrap.php.cache at line 413   +
    at Kernel ->handle (object(Request)) 
    in C:\Programming\xampp\htdocs\filmboot\web\app_dev.php at line 26   +
4

1 に答える 1

0

次のようなリクエストを取得する必要があります。

$request = $this->getRequest();

それ以外の

$request = $this->request;

リクエストは、クラス プロパティではないメソッドを使用して返されます

于 2013-07-31T15:35:59.663 に答える