Laravel 4 - 在ajax请求后更新数据库

时间:2013-11-08 20:24:51

标签: php ajax laravel

我正在尝试在用户更新用户名后更新用户名列。我正在使用路由器和过滤器,而不是使用控制器......

HTML:

Hi, <span class="username" contenteditable="true">{{ $username }} </span>

JS / jQuery的

var username = $('.username').text();
$('.username').blur(function(){
    if (username != $(this).text()) {
        var username = $('.username').text();
        console.log('Changing your name to ' + username);
        $.ajax({
            type: 'POST',
            url: 'usernameChange',
            data: { username: username }
        }).done(function(msg){
            console.log('Okay, new username is ' + msg);
        });
    }
});

它确实成功发送到路由器......

Route::post('usernameChange', function(){
    $username = Input::get('username');
    return $username;
});

但是我无法更新表格,或者我是否正确行事....我试图将其附加到usernameChange路由器中,但在尝试发送请求时出现505内部错误。 ..

DB::table('users')
    ->where('id', Auth::user()->id)
    ->update(array(Auth::user()->username => $username));

^那是对的吗?

那我怎么能这样做呢?我应该在哪里?

1 个答案:

答案 0 :(得分:1)

使用Eloquent,您可以执行以下操作:

$user = Auth::user();
$user->username = $username;
$user->save();

我建议您在保存之前添加一些验证。但是,这是基本的想法。加载用户。改变需要改变的东西。然后调用save来保存用户以更新信息。