0

thinkphp5中,login获取不到后面控制器定义的数据

这是后面控制器的User.php的代码

<?php
namespace app\index\controller;
use app\index\controller\Base;
use think\Request;
class User extends Base
{
    public function login()
    {
      return  $this->view->fetch();
    }
    public function checkLogin(Request $request)
    {
        $status = 0 ;
        $result = '' ;
        $data = $request -> param();
        return ['status'=>$status,'message'=>$result, 'data'=>$data];
    }




}
?>

这是前端login的代码提交的代码,用了ajax

<script>
    $(function(){
        $("#login").on('click',function(event){
            $.ajax({
                type:"POST",
                url:"{url('checkLogin')}",
                data:$("form").serialize(),
                dataType:'json',
                success: function (data){
                        alert(data.status)
                }
            })
        })
    })
</script>

前端点击登录之后应该出来我前面定义好的status的值,但是现弹出来的对话框打印的个空值
不知道哪里没写对,求大神指点

4个回答

0

已采纳

你看是不是ajax的url没写对,应该是user控制器下面的checkLogin方法,你默认的是user控制器吗

1

dataType定义了json, 但是你返回了一个数组

0
//return ['status'=>$status,'message'=>$result, 'data'=>$data];
$return = ['status'=>$status,'message'=>$result, 'data'=>$data];
echo  json_encode($return);
0

解决了,在url哪里,本在第二个括号里面缺少一个冒号。填上就可以解决了。谢谢各位大神

撰写答案