如何在Lavavel中授权失败时发送错误消息以查看

时间:2018-08-14 10:02:06

标签: php ajax laravel laravel-5.2

我正在一个用户可以加入群组的系统上工作。如果用户完全满足两个条件,则可以发出ajax请求

  • 他必须登录
  • 他不参加这个会议厅

我当前在会话中保存错误消息。如果用户未登录,我想做一个特定的任务,否则,如果用户已经加入该组,我想做一个特定的任务。

这是我的身份验证代码,它在控制器方法之前运行

    public function authorize()
{

    //authorize that user must be logged in
   if(session()->get('uid')!=NULL){
      //authorize that user must not join this group before 
      $status=Usergroup::where(['user_id'=>session()->get('uid'), 
      'group_id'=>$this->chamber_id])->exists();

       if($status){
           session()->put('join_group_auth_error','already_joined');
           return false;
       }
       else{

           return true;
       }

       }
       else{
        session()->put('join_group_auth_error','not_login');
        return false;
       }
}

这是ajax请求

  function joinChamber(chamber_id){

    $.ajax({
        headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },

        url:'{{route('join.group')}}',
        type:'post',
        data:{group_id:group_id},
        success:function(response,status){
            if(response=='joined'){
             $("#joinbuttondiv-"+chamber_id).html('<span 
             class="bodybadge">Joined</span>');
             }},


        error:function(response){
        if(response.status==403){

        @if(session()->get('join_group_auth_error')=='not_login') 
            {{session()->forget('join_group_auth_error')}}
            openRegisterModal();

            @elseif(session()- 
            >get('join_group_auth_error')=='already_joined')
            {{session()->forget('join_group_auth_error')}}
            alert('You have already joined this group.');
            window.location=window.location.href;

            @endif

        }

    }
    });

此系统可以正常运行,但并非每次都可以。 例如,我在视图中必须提出ajax请求,而我没有登录。当我单击加入按钮时,什么都没有发生,但是刷新页面后,当我单击加入按钮,这正是我想要的。 这是什么原因。 还告诉我,这是确切的方法吗?

1 个答案:

答案 0 :(得分:0)

在浏览器中查看控制台,然后单击错误(红色)链接,它向您显示服务器错误-发生了什么问题。