2016-07-10 67 views
0

嘿,夥計們,我試圖讓這個表單更新我的users table,但我不知道如何在laravel中完成。這裏是我的形式如何從表單laravel更新表格5.1

<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將處理輸入,但林不知道從這裏做。

感謝所有幫助

回答

0

第一關:我不建議echo荷蘭國際集團的$user屬性。使用刀片語法,例如{{ $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(); 
} 
+0

所以讓我得到這個直。對於最佳實踐,我只是將所有這些數據傳遞給模型? –

+0

通常會事先進行一些驗證,或者[在控制器方法本身內](https://laravel.com/docs/5.1/validation#quick-writing-the-validation-logic)或使用[表單請求驗證](https: //laravel.com/docs/5.1/validation#form-request-validation)。關於更新記錄,有兩種做法,但[請查看此視頻](https://laracasts.com/series/laravel-5-from-scratch/episodes/10)。 – Joseph