Laravel 5.3级/路线

时间:2016-12-21 17:40:04

标签: php laravel laravel-5.3

HeJ小鼠!我的问题是下一个。我开始使用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

感谢。

2 个答案:

答案 0 :(得分:2)

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

class Vehicle extends Controller{
      public $vehicletype;

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

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

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

答案 1 :(得分:2)

您需要先学习基本的PHP。

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