如何从表单laravel 5.1更新表

时间:2016-07-10 17:47:22

标签: php laravel-5.1

嘿伙计我试图让这个表单更新我的users table,但我不知道如何在laravel中这样做。这是我的表格

<form method="POST" action="/profile/update">
    <div class="form-group hidden">
        <input type="hidden" name="_token" value="{{ csrf_token() }}">
        <input type="hidden" name="id" value="<?php echo $user->id;?>">
        <input type="hidden" name="_method" value="PATCH">
    </div>
    <div class="form-group">
        <label for="email"><b>Name:</b></label>
        <input type="text" name="name" placeholder="Please enter your email here" class="form-control" value="<?php echo $user->name;?>"/>
    </div>
    <div class="form-group">
        <label for="email"><b>Email:</b></label>
        <input type="text" name="email" placeholder="Please enter your email here" class="form-control" value="<?php echo $user->email;?>"/>
    </div>
    <div class="form-group">
        <button type="submit" class="btn btn-default"> Submit </button>
    </div>
</form>

这是我的控制器

<?php

namespace App\Http\Controllers;

use Auth;
use App\User;
use Illuminate\Http\Request;

use App\Http\Controllers\Controller;

class ProfileController extends Controller
{
    /**
     * Update user profile & make backend push to DB
    **/

    public function index() {

        // connecting to the DB and accessing
        $user = Auth::user();
        //var_dump($user);
        return view('profile', compact('user'));

    }

    public function update(Request $request) {

        $request->only('name','email');
        return back();
    }
}

我的update method会处理输入但我不知道该怎么做。

感谢所有帮助

1 个答案:

答案 0 :(得分:0)

首先:我不推荐echo $user的属性。使用Blade语法,例如{{ $user->id }}。为了安全起见,Laravel Blade在使用此语法时会转义您的值。

有关创建模型的详细信息,请查看Laravel documentation on inserting & creating models

基本上,你想做的事情就是这样:

public function update(Request $request) {

    $input = $request->only('name','email');

    $user = Auth::user(); // Fetch the user model

    // Update the fields
    $user->name = $input['name'];
    $user->email = $input['email'];

    // Save changes
    $user->save();

    return back();
}