php 意外的“->”(T_OBJECT_OPERATOR)字符串

pcww981p  于 2023-02-07  发布在  PHP
关注(0)|答案(4)|浏览(130)

我刚刚创建了一个新的laravel项目并设置了linting自动化,但是在return语句中弹出了一个lint错误。

protected function configureRateLimiting()
{
    RateLimiter::for('api', function (Request $request) {
        return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
    });
}

为什么会弹出lint错误?

uqjltbpv

uqjltbpv1#

检查您的PHP和Laravel版本。Laravel 9需要PHP8. https://laravel.com/docs/9.x/releases
PHP 8支持零安全运算符https://kinsta.com/blog/php-8/#nullsafe-operator

yshpjwxd

yshpjwxd2#

问题出在您的代码中。请使用以下代码:

protected function configureRateLimiting(){

    RateLimiter::for('api', function (Request $request) {
        return Limit::perMinute(60)->by($request->user()->id ?: $request->ip());
    });
}
ezykj2lf

ezykj2lf3#

这可以解决你的问题。重写三元运算符如下

protected function configureRateLimiting(){

     RateLimiter::for('api', function (Request $request) {
     return Limit::perMinute(60)->by($request->user() ? $request->user()->id 
       : $request->ip());
   });
}
6qftjkof

6qftjkof4#

我对此进行了更改,问题得到解决

protected function configureRateLimiting()
{
    RateLimiter::for('api', function (Request $request) {
        return Limit::perMinute(60)->by($request->user()->id ?? $request->ip());
    });
}

相关问题