如何检索输入字段

Mar*_*rko 6 laravel laravel-5

如何获取更新任务的输入字段?当dd(Request::input('task'));我试图 得到"非静态方法Illuminate\Http\Request :: input()时不应该静态调用,假设$ this来自不兼容的上下文"

<?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');
}
Run Code Online (Sandbox Code Playgroud)

编辑视图(工作正常)

{!! Form::model($task, array('url' => 'tasks/'.$task->id, 'method' => 'PATCH')) 
    !!}
    {!! Form::text('task', $task->task, array('class' => 'form-control')) !!}
    {!! Form::submit('Edit', array('class' => 'btn btn-default')) !!}
    {!! Form::close() !!}
Run Code Online (Sandbox Code Playgroud)

luk*_*ter 17

你导入错了Request.

要使用Request 外观,您必须:

use Illuminate\Support\Facades\Request
Run Code Online (Sandbox Code Playgroud)

或者只是别名:

use Request
Run Code Online (Sandbox Code Playgroud)

你也可以像这样使用依赖注入:

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');
    }
}
Run Code Online (Sandbox Code Playgroud)

或者只在一种方法上使用DI:

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


Mik*_*étt 10

您应该使用依赖注入:

use Illuminate\Http\Request;

...

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

有关更多信息,请参阅文档:http://laravel.com/docs/5.0/controllers#dependency-injection-and-controllers