拉拉维尔帐户详细信息更新


Laravel account details update

我仍在掌握Laravel框架,但一些应该很简单的事情对我来说是一个麻烦的问题。

我在account/update.blade.php内部创建了一个视图

<form action="{{ URL::route('account-update-post') }}" method="post">
<p><input type="text" name="twitter" placeholder="Twitter handle" />
</p>
<p><input type="text" name="facebook" placeholder="Facebook handle" /> 
<p><input type="text" name="website" placeholder="Website url" /> 
<p><input type="text" name="about" placeholder="About me" /> 
<p><a href="{{ URL::route('account-change-password') }}">Change password</a></p>
<button class="button-default ">Update</button></p>
</form>

我在AccountController.php

public function postUpdate(){
        $user           = User::find(Auth::user()->id);
        $twitter    = Input::get('twitter');
        $facebook       = Input::get('facebook');
    return Redirect::route('account-update')
                ->with('global', 'Your account details could not be changed.');
}

我创建了一个路由:

/* Account update (POST) */
Route::post('/account/update', array(
    'as' => 'account-update-post',
    'uses' => 'AccountController@postUpdate'
));

在我的模型文件中,我有Update.php

<?php
use Illuminate'Auth'UserTrait;
use Illuminate'Auth'UserInterface;
use Illuminate'Auth'Reminders'RemindableTrait;
use Illuminate'Auth'Reminders'RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
    protected $fillable = array('twitter', 'facebook', 'website', 'about';
    use UserTrait, RemindableTrait;
    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'users';

并使用相关字段设置我的数据库以接受此信息。我不需要对这些字段进行任何验证,但要努力解决为什么它没有更新到数据库中。

更新检索到的模型

要更新模型,您可以检索它,更改属性,并使用 save 方法:

$user = User::find(Auth::id());
$user->twitter = Input::get('twitter');
$user->facebook = Input::get('facebook');
$user->save();

然后添加您的路线以重定向到某个页面。看看这是否有效。您可以访问 插入 - 更新 - 删除 部分 从 Laravel文档

您的代码完全按预期工作。

试试这个

public function postUpdate() {
    # Update user in DB
    $user           = User::find(Auth::id());
    $user->twitter  = Input::get('twitter');
    $user->facebook = Input::get('facebook');
    $user-save();
    return Redirect::route('account-update')
                ->withGlobal('Your account has been successfully updated');
}

你忘了关闭括号。

protected $fillable = array('twitter', 'facebook', 'website', 'about';

应该是

protected $fillable = array('twitter', 'facebook', 'website', 'about');