laravel5.5 测试评论设计与开发(仅供参考)

在laravel开发过程中需要开发一个最新评论文章的显示功能,由于经验有限,所以介绍一下自己的思路仅供大家参考,

一 数据库设计 文章表中添加与评论关联字段 comments commentstime statu

comments  integer //记录是否存在评论
commentstime timestamp //记录最新评论时间
statu integer //记录评论是否审核通过
评论表设计 id article_id target_name content create_at name statu redcontent time
create_at //评论时间
statu  //另论状态
redcontent //站长回复
time //回复时间

二 前台html 通过ajax将数据传过去

<form id="comment-form" name="comment-form" onsubmit="return false;">
 <div class="comment">
    <input name="name" id="" class="form-control" size="22" placeholder="您的昵称(必填)" maxlength="15" autocomplete="off" tabindex="1" type="text">
    <input name=" target_name" id="" class="form-control" size="22" placeholder="您的网址或邮箱(非必填)" maxlength="58" autocomplete="off" tabindex="2" type="text">
    <input name="article_id" value="{{$data->id}}" type="text" style="display: none;">
    <div class="comment-box">
       <textarea placeholder="您的评论或留言(必填)" name="content" id="comment-textarea" cols="100%" rows="3" tabindex="3"></textarea>
       <div class="comment-ctrl">
          <div class="comment-prompt" style="display: none;"> <i class="fa fa-spin fa-circle-o-notch"></i> <span class="comment-prompt-text">评论正在提交中...请稍后</span> </div>
          <div class="comment-success" style="display: none;"> <i class="fa fa-check"></i> <span class="comment-prompt-text">评论提交成功...</span> </div>
          <button type="submit" name="comment-submit" id="comment-submit" tabindex="4"  onclick="coments_add(this)">评论</button>
       </div>
    </div>
  </div>
</form>
<script type="text/javascript">
   $(document).ready(function(){
      $("#coments").on('click',function(){
        $("#respond").toggle(1000);
      });
   });
   function coments_add(obj,id){
      //表单的序列化
      var str=$("#comment-form").serialize();
      //提交到下一个界面
      $.post('/comments/store',{str,str,'_token':'{{csrf_token()}}'},function(data){
        if(data){
          //window.location.reload();//刷新页面
          $("#respond").hide(1000);
        }else{
          alert('留言添加失败');
        }
      });          
    }
</script>

三 逻辑 在评论控制器中store()方法

对数据进行分配评论后对数据库操作
        //把字符串数组话
        parse_str($_POST['str'],$data);
        //移除不需要的字符
        //$data=$request->except("_token");
        $data['created_at']=date('Y-m-d H:i:s');
        $adata['commentstime']=date('Y-m-d H:i:s');
        $adata['comments']=1;
        //修改文章和评论关联的数据
        \DB::update('update 文章表 set comments=?,commentstime=? where id=?',[$adata['comments'],$adata['commentstime'],$data['article_id']]);
        //插入数据库
        if(\DB::table("评论表")->insert($data)){//insertGetId插入数据并获得插入数据的ID
            echo  1;
        }else{
            echo  0;
        }

三 站长后台评论控制器中 回复评论后通过后台评论控制器针对评论表与文章表进行操作edit()

        $data=$_POST;
        if($data){
           $data['id']=$id;
           $data['commentstime']=date('Y-m-d');
           $data['comments']='1';
           $data['time']=date('Y-m-d H:i:s');
           //修改文章和评论关联的数据
           $size=\DB::table('评论表')->where('article_id',$data['article_id'])->count();
           $data['size']=$size;
           \DB::update('update 文章表 set statu=?,size=? where id=?',[$data['statu'],$data['size'],$data['article_id']]);
           $result=\DB::update('update 评论表 set  statu=?,redcontent=?,time=?  WHERE id=?',[$data['statu'],$data['redcontent'],$data['time'],$data['id']]);
           if($result){
                return redirect('admin/comments');
            }else{
                return back();
            }
        }else{
            $data=\DB::table('评论表')->find($id);
            return view('admin.comments.edit')->with('data',$data); 
        }

到这里基本就结束了,由于是第一次做有可能比较乱 ,如有疑问请回复并留下邮件信息 可将你的问题用邮件的方式回复

阅读 140

Comments