嗨,大家好我现在正在尝试laravel我正在做的是当用户使用他们的用户名键入文本框时,如果他/她已经注册,则上面的div将加载基于用户的图像在我的数据库,但这没有发生,而是它给了我一个错误 这是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));
}
答案 0 :(得分:1)
那是因为你的变量$firstname
是undefined
,但也许你在想自己
为什么$ firstname未定义,如果它在foreach循环中定义?
这是因为$firstname
仅在foreach's scope
内可用。
也许您想阅读this
但也想一想,如果$users
没有返回任何内容怎么办?然后永远不会定义$firstname
,因为undefined
变量会导致错误。
答案 1 :(得分:0)
试试这个(已编辑);
$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));
答案 2 :(得分:0)
这会有用吗?
$email = Response::json(Input::get('us'));
$user = User::where('username','=',$email)->first();
return Response::json(array('us' => $user->firstname));