2015-02-05 46 views
6

Wie erhalte ich ein Eingabefeld für die Aktualisierung einer Aufgabe? Wenn zu dd(Request::input('task')); versuchen bekomme ich "Nicht-statische Methode Illuminate \ Http \ anfordern :: input() sollte nicht statisch aufgerufen werden, $ dieser von unverträglichen Zusammenhang unter der Annahme,"So erhalten Sie das Eingabefeld

<?php namespace App\Http\Controllers; 

use App\Http\Requests; 
use App\Http\Controllers\Controller; 
use App\Task; 
use Illuminate\Http\Request; 

class TaskController extends Controller { 

public function update($id) 
{ 
    dd(Request::input('task')); 
    $task = Task::findOrFail($id); 
    $task->title = Request::input('task'); 
    $task->save(); 
    return Redirect::to('tasks'); 
} 

Edit-Ansicht (seine Arbeit ok)

+0

Nur zu sagen, können Sie format code inline, indem man es in backticks ('\' ') einfügt und es so aussehen lässt, als ob es sich um Code statt um hervorgehobenen Text handeln würde. –

Antwort

10

Sie Dependency Injection für diesen Einsatz sollte http://laravel.com/docs/5.0/controllers#dependency-injection-and-controllers

+1

thx, muss ich mir das anschauen. Ich beobachte Jeffrey Way Tutorials, aber ich verstehe diesen Teil nicht, also habe ich einfach etwas sehr einfaches versucht. – Marko

+1

Laravel 5 ist eine großartige Möglichkeit, Entwicklern bei der Einhaltung einer Reihe von Standards zu helfen. DI ist sehr nützlich, und ich bevorzuge sie von Fassaden (nicht, dass ich irgendwelche Beschwerden über sie habe). Also, beziehe dich so sehr wie möglich auf die Art und Weise, in der L5 Dinge tut - deine Lernerfahrung wird sehr vorteilhaft sein. :-) –

17

Sie haben das falsche Request importiert.

Um die RequestFassade verwenden was Sie tun müssen:

use Illuminate\Support\Facades\Request 

Oder nur der Alias:

:

use Request 

Sie auch Dependency Injection wie diese verwenden könnte

use App\Http\Requests; 
use App\Http\Controllers\Controller; 
use App\Task; 
use Illuminate\Http\Request; 

class TaskController extends Controller { 

    public function __construct(Request $request){ 
     $this->request = $request; 
    } 

    public function update($id){ 
     $task = Task::findOrFail($id); 
     $task->title = $this->request->input('task'); 
     $task->save(); 
     return Redirect::to('tasks'); 
    } 
} 

Oder DI nur auf, dass ein Verfahren verwenden, um weitere Informationen zu

use Illuminate\Http\Request; 

... 

public function update(Request $request, $id) 
{ 
    // 
    $task->title = $request->input('task'); 
    // 
} 

Bitte beachten Sie die Dokumentation:

public function update(Request $request, $id){ 
    $task = Task::findOrFail($id); 
    $task->title = $request->input('task'); 
    $task->save(); 
    return Redirect::to('tasks'); 
} 
Verwandte Themen