2016-03-27 31 views
0

イムsubmiting後、私はエラーを取得、laravelのフォームファサードを使用してユーザーオブジェクトを更新しようとしている:Laravel 5 - フォームのファサードと更新エラー

ErrorException in Grammar.php line 102: 
Argument 1 passed to Illuminate\Database\Grammar::columnize() must be of the type array, 
string given, called in 
C:\Laravel Projects\ExpenseTool\vendor\laravel\framework\src\Illuminate\Database\Query\Grammars\Grammar.php on line 105 and defined 

マイリクエスト:

<?php namespace App\Http\Requests; 

use App\Http\Requests\Request; 

class UserRequest extends Request { 

/** 
* Determine if the user is authorized to make this request. 
* 
* @return bool 
*/ 
public function authorize() 
{ 
    return true; 
} 

/** 
* Get the validation rules that apply to the request. 
* 
* @return array 
*/ 
public function rules() 
{ 
    return [ 
     'name' => 'required|min:3', 
     'email' 
    ]; 
} 

} 

をマイHomeControllerインデックス:

public function index() 
{ 
    $user = Auth::user(); 
    return view('Expenses.home', compact('user')); 
} 

ビューExpenses.homeマイ形式:

{!! Form::model($user, ['method' => 'PUT', 'action' => ['[email protected]', $user->id]]) !!} 
    <div class="form-group"> 
     {!! Form::label('Name', 'Name:') !!} 
     {!! Form::text('name', null, ['class' => 'form-control']) !!} 
    </div> 

    <div class="form-group"> 
     {!! Form::label('Email', 'Email:') !!} 
     {!! Form::text('email', null, ['class' => 'form-control']) !!} 
    </div> 

    <div class="form-group"> 
     {!! Form::submit('Update', ['class' => 'btn btn-primary form-control']) !!} 
    </div> 
{!! Form::close() !!} 

私のルート:

Route::resource('home', 'HomeController', ['only' => ['update']]); 

私にHomeControllerの@更新:私が間違っているのは何

public function update($id, UserRequest $request) 
{ 
    $loggedUser = Auth::user(); 

    $userDB = User::get($id); 

    $username = $request->input('name'); 

    $userDB->name = $username; 

    $userDB->update(); 

    return redirect('home'); 
} 

答えて

1

あなたは

`公共の機能更新($のID、UserRequest $リクエスト) { $ loggedUser =認証::ユーザー()を変更する必要があります。

// you are cool to use findOrFail 
$userDB = User::find($id); 

$username = $request->input('name'); 

$userDB->name = $username; 

$userDB->update(); 

return redirect('home'); 

} `

あなたのエラーがget()法による原因は、データベース

から取得したい列の配列を渡すする必要があります
関連する問題