2016-03-27 10 views
0

Im Versuch, das Benutzerobjekt mit einer Form Fassade in Laravel zu aktualisieren, nachdem submiting i den Fehler:Laravel 5 - Fehler beim Aktualisieren mit Formular Fassade

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 

Meine Anfrage:

<?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' 
    ]; 
} 

} 

Meine Homecontroller Index:

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

Meine Form im Hinblick 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() !!} 

meine Route:

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

mein Homecontroller @ Update:

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'); 
} 

Was mache ich falsch?

Antwort

1

müssen Sie

`public function update ($ id, $ UserRequest Anfrage) { $ loggedUser = Auth :: Benutzer() ändern;

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

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

$userDB->name = $username; 

$userDB->update(); 

return redirect('home'); 

} `

Ihre Fehler verursacht durch die get() Methode, die Sie benötigen eine Reihe von Spalten zu übergeben Sie möchten von Datenbank abruft

Verwandte Themen