laravel 如何检索输入字段

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/28345330/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 10:50:33  来源:igfitidea点击:

How to retrieve input field

laravellaravel-5

提问by Marko

How do I get input field for updating a task? When trying to dd(Request::input('task'));I get "Non-static method Illuminate\Http\Request::input() should not be called statically, assuming $this from incompatible context"

如何获取用于更新任务的输入字段?当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');
}

Edit view (its working ok)

编辑视图(工作正常)

{!! 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() !!}

回答by lukasgeiter

You imported the wrong Request.

你输入错了Request

To use the Requestfacadeyou have to do:

要使用Request门面,您必须执行以下操作:

use Illuminate\Support\Facades\Request

Or just the alias:

或者只是别名:

use Request


You could also use dependency injection like this:

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

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

Or only use DI on that one method:

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

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

回答by Mike Rockétt

You should use Dependency Injection for this:

您应该为此使用依赖注入:

use Illuminate\Http\Request;

...

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

Please see the docs for more information: http://laravel.com/docs/5.0/controllers#dependency-injection-and-controllers

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