【问题标题】:Laravel NetworkError: 500 Internal Server Error - http://laravel.dev/cLaravel NetworkError:500 内部服务器错误 - http://laravel.dev/c
【发布时间】:2014-07-18 21:07:30
【问题描述】:

大家好,我现在正在尝试 laravel这没有发生,而是给了我一个错误 这是firebug发现的错误

知道怎么做吗?我尝试了在谷歌上找到的几件事,但没有解决我的问题 这是我所拥有的

来自 login.blade.php(仅 ajax,因为它是唯一启动条件的)

       $('#email').typing({

    start: function () {

},
    stop: function () {
        var email = $('#email').val(); 
        $.get('c',function(data){
         console.log(data);
    $('#ico-pro').html('<img src="temp/users/'+ us +'.jpg" width=75 height=75>');

  });
}
});

从路线出发

Route::get('/c','HomeController@login_c');

来自 HomeController.php

    public function login_c()
    {
  if(Request::ajax()){
    $email = Response::json(Input::get('us'));

        $users = User::where('username','=',$email)->get();
        foreach ($users as $val):
            $firstname = $val['firstname'];
        endforeach;
    return Response::json(array('us' => $firstname));
  }

【问题讨论】:

  • 这个错误是不言自明的。某处有一个未定义的变量$firstname
  • 是的,我知道它是未定义的,它来自我的 HomeController 上的 $firstname,但它是在那里定义的,为什么它仍然未定义?你不觉得奇怪吗?

标签: laravel laravel-4


【解决方案1】:

那是因为你的变量 $firstnameundefined 但也许你想知道自己

如果 $firstname 在 foreach 循环中定义,为什么它是未定义的?

这是因为 $firstname 仅在 foreach's scope 中可用。

也许你想阅读this

但也想一想,如果$users 没有返回任何东西怎么办?那么$firstname 将永远不会被定义,并且会因为undefined 变量而引发错误。

【讨论】:

    【解决方案2】:

    试试这个(已编辑);

    $users = User::where('username','=',$email)->get();
    $new_array = array();
    foreach($users as $val) {
       $new_array[] = $val->first_name;
    }
    echo json_encode(array('us'=>$new_array));
    

    【讨论】:

    • 它从firebug返回[]结果
    【解决方案3】:

    这行得通吗?

    $email = Response::json(Input::get('us'));
    $user = User::where('username','=',$email)->first();
    return Response::json(array('us' => $user->firstname));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-13
      • 2014-10-25
      • 2015-08-12
      • 1970-01-01
      相关资源
      最近更新 更多