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
感谢。
答案 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