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