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
How to retrieve input field
提问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 Request
facadeyou 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