Laravel 5.3 class/routes

Laravel 5.3 class/routes

嘿!我的问题是下一个。我开始使用 Laravel 5.3。我如何在 Laravel 中执行 class:

class Vehicle
{
    public $vehicletype;

    function invt($vehicletype){
        $this->vehicletype=$vehicletype;
    }
    function outvt(){
        return $this->vehicletype;
    }
}

我已经有 ajax .post ,路线:

Route::get('/ajax-vehicletype',function(){
    $vehicletypevalue=Input::get('vehicletype');
    Vehicle::invt($vehicletypevalue);
});

我收到错误:

Non-static method App\Vehicle::invt() should not be called statically, assuming $this from incompatible context

谢谢。

您可以定义控制器,然后在该控制器内定义函数,并将其传递到您的路由参数中。

class Vehicle extends Controller{
      public $vehicletype;

      function invt($vehicletype){
           $this->vehicletype=$vehicletype;
      }
     function outvt(){
      ...........
      }
}

在您的路线文件中,您可以将路线定义为

Route::get('/ajax-vehicletype/{vehicletype}','Vehicle@invt');

你需要先学习基础PHP。

您遇到的问题是因为您正在静态调用非静态方法,正如错误中所述。快速解决方法是将 invt 方法定义为静态方法:http://php.net/manual/en/language.oop5.static.php