在Laravel,我想打电话给$input = Request::all();
一个store()
在我的控制器的方法,但我发现了以下错误:
从不兼容的上下文中
Illuminate\Http\Request::all()
假设$this
,非静态方法不应静态调用
有什么帮助找出解决此问题的最佳方法吗?(我正在观看Laracast)
该错误消息是由于呼叫未通过Request
立面而导致的。
更改
use Illuminate\Http\Request;
至
use Request;
它应该开始工作。
在config /
app.php文件中,您可以找到类别名的列表。在那里,您将看到基类Request
已被别名为Illuminate\Support\Facades\Request
该类。因此,要Request
在命名空间文件中使用外观,您需要指定使用基类:use Request;
。
由于这个问题似乎吸引了一些访问者,自Laravel 5正式发布以来,我想对答案进行一些更新。
尽管以上内容在技术上仍然正确并且可以使用,但该use Illuminate\Http\Request;
语句包含在新的Controller模板中,以帮助推动开发人员朝着使用依赖项注入而不是依赖Facade的方向发展。
当将Request对象注入构造函数(或方法,如Laravel
5中可用)时,Illuminate\Http\Request
应该注入的是对象,而不是Request
立面。
因此,最好不要使用Controller模板以使其与Request门面配合使用,而是建议使用给定的Controller模板并转向使用依赖项注入(通过构造函数或方法)。
方法示例
<?php namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class UserController extends Controller {
/**
* Store a newly created resource in storage.
*
* @param Illuminate\Http\Request $request
* @return Response
*/
public function store(Request $request) {
$name = $request->input('name');
}
}
通过构造函数的例子
<?php namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class UserController extends Controller {
protected $request;
public function __construct(Request $request) {
$this->request = $request;
}
/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store() {
$name = $this->request->input('name');
}
}
在Laravel中,我试图在我的控制器中的方法上调用,但我得到以下错误: 假设来自不兼容的上下文,则不应静态调用非静态方法 有什么能帮助找出纠正这种情况的最好方法吗?(我跟着一个Laracast)
我最近对 PHP 5.4 进行了更新,但收到有关静态和非静态代码的错误。 这是错误: 这是第371行: 我希望有人能帮忙。
我正在使用存储库模式并尝试建立模型之间的关系。当我尝试运行存储()方法(在控制器中),该方法试图使用用户()方法(与方模型建立关系)时,我收到以下错误消息: 非静态方法不应该静态调用::user(),假设$this来自不兼容的上下文 我不明白为什么在尝试运行user()relationship方法时会出现此错误,但所有其他方法(包括$this- 以下是相关代码:
我一直试图用我的验证代码进行php pear验证,但我收到的都是严格标准错误--问题是什么?我如何修复它? 电子邮件验证.php
PHP严格标准:不应在第33行的/web/sites/blah/somescript.PHP中静态调用非静态方法pear::iserror() 我在MDB2上看到了类似的错误。稍后再详细介绍。 somescript.php: 问题 是否有不同的方法来调用而不会产生错误?
我正在尝试在varGrant CentOS VM上本地运行一个codegniter站点。我已经下载了所有文件,并设置了yaml/host文件等。 我在屏幕上看到这个错误。 遇到 PHP 错误 严重性:8192 消息:非静态方法 MY_Loader::d efine_module() 不应静态调用,假设$this来自不兼容的上下文 文件名:controllers/Front _ controller