0

jQueryを介した画像コメントに問題があります。アクションがキャッシュされていることを理解したので、jQueryがアクションを呼び出すと、キャッシュのためにsfGaurdユーザーが認証されていることがわからないため、user_idなしでコメントを挿入できません(関係の問題)

だからここにそれがどのように行われたかです:

ルーティング :

commentimage:
  url:     /commentimage/:image_id.:sf_format
  class:   sfDoctrineRoute
  options: { model: imagecomments, type: object }
  param:   { module: profile, action: commentimage, sf_format: html }
  requirements:
    id: \d+
    sf_method: [get, post]
    sf_format: (?:html|js)

アクション :

public function executeCommentimage(sfWebRequest $request)  {

    $imgId   = $request->getParameter('image_id');
    $commentPost = $request->getParameter('comment');

    $user_id = $this->getContext()->getUser()->getAttribute('user_id','','sfGuardSecurityUser');

    $comment = new Imagecomments();


    $comment->setComment($commentPost);
    $comment->setImageId($imgId);
    $comment->setProfileId($user_id);
    $comment->setFirmbrandId(1);
    $comment->setPublished(1);
    $comment->save();

    $this->setLayout(false);      
}

テンプレート/フォーム:

 <form name="form" id="form<?php echo $photo->getId();?>" method="POST">
   <input type="hidden" id="image_id" name="image_id" value="<?php echo $photo->getId();?>" />
   <input type="text" id="comment" name="comment" value="" />
   <button name="submit" class="submit botunlink">KOMENTIRAJ</button>
 </form>

そしてjQuery:

$(".submit").click(function(e){
        e.preventDefault();
        var parent = $(this).parent();
        var imageId = get_numbers(parent.attr('id'));
        var theexactForm = "#form"+imageId;
        $(theexactForm).submit(function() {
            alert($(this).serialize());
            return false;
          });
        $.ajax({
           data: $(theexactForm).serialize(),
           url: 'http://partytime.hr/commentimage/'+imageId,
           type: "POST", 
           success: function () {
               $("#allComments"+imageId).html("");
               $("#allComments"+imageId).load("http://partytime.hr/showimagecomments/"+imageId);
               //alert('imageID||'+imageId+'Forma||'+theexactForm+'COMMENT:'+data);
           },
           complete: function() { 
            //$(".allComments").mCustomScrollbar();
        }
        });
         return false;
    });

ログインしてsymfonyキャッシュがクリアされると機能しますが、キャッシュがログインしていないと言ったためにPROFILE_IDを更新できないため、後で機能しなくなります(これが私の結論です)。

どうすればこれを修正できますか?

4

0 に答える 0