【问题标题】:What is the difference between of these two classes in laravel 5?laravel 5中这两个类有什么区别?
【发布时间】:2016-12-22 06:16:06
【问题描述】:

我有一个问题 \Illuminate\Http\Request 和 laravel 5 中的 Request 类有什么区别。我使用了 \Illuminate \Http\Request 类,用于刀片形式的一些基于 ajax 的事物。使用 \Illuminate\Http\Request 时会显示错误,

不应静态调用非静态方法 Illuminate\Http\Request::ajax(),假设 $this 来自不兼容的上下文

这是我使用的代码块

  Route::post('org_tree',function(\Illuminate\Http\Request $request)
    {
         if(Request::ajax())
            {

            }
   });

这是什么原因?

【问题讨论】:

  • Request 类只是一个包装\Illuminate\Http\Request 实例的Laravel Facade。 Facades 只不过是一种语法糖,可授予您对底层类方法的静态访问权限。

标签: laravel laravel-5 laravel-5.2 laravel-5.1 laravel-routing


【解决方案1】:

方法 ajax 不是静态方法,并且这个类没有 _callStatic 魔术方法,所以你可以使用

$request = new \Illuminate\Http\Request();
$request->ajax();

或使用

\Illuminate\Http\Request::ajax();

【讨论】:

  • 太好了,我会检查这个解决方案!
【解决方案2】:

使用如下修改代码后问题解决

Route::post('org_tree',function(\Illuminate\Http\Request $request)
{
     if($request->ajax())
        {
          //rest of the ajax body 
        }
});

Route::post('org_tree',function(Request $request)
{
     if($request->ajax())
        {
          //rest of the ajax body
        }
});

就是这样!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    • 2012-06-12
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多