在 Laravel 控制器中不在对象上下文中时使用 $this

新手上路,请多包涵

我在控制器中创建了一个公共静态函数,我需要访问在构造函数上设置的类属性。我通常使用 $this->something 来访问此类属性,但是这次,我得到了这个错误:

不在对象上下文中时使用 $this

这是代码:

 public static function PayExecute() {
    $paymentId = Input::get('paymentId');
    $PayerID = Input::get('PayerID');

    $cont = $this->apiContext;
}

原文由 Rohansin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 641
2 个回答

您需要将 $apiContext 声明为静态属性,并且需要使用 staticself 关键字。是这样的:

 class YourController extends BaseController
{
    private static $apiContext = '';

    public static function PayExecute()
    {
        $paymentId = Input::get('paymentId');
        $PayerID = Input::get('PayerID');

        $cont = static::$apiContext;
    }
}

顺便说一句:请注意 static 是后期静态绑定这一事实。

原文由 cn007b 发布,翻译遵循 CC BY-SA 3.0 许可协议

您不能在静态方法中使用“$this”。虽然您确实可以访问“self::”,但请记住您不能访问需要实例化当前类的方法/属性。

原文由 NaeiKinDus 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏