无法在 Laravel 中使用某个词作为函数名称

Not able to use a certain word for a function name in Laravel

我正在 Laravel 开发这个基本应用程序。用户提出查询,其他用户可以对其发表评论。

我在评论模型中建立了这种关系-

class Comment extends Model
{
    public function query()
    {
        return $this->belongsTo(Query::class);
    }
}

当我 运行 php artisan tinker 并像这样创建一个新实例时-

$comment = new App\Comment

我得到一个错误-

Cannot make static method Illuminate\Database\Eloquent\Model::query() non static in class App\Comment

我认为问题出在函数名称 'query' 上。因为如果我将名称更改为其他任何名称,它就会起作用。我没有收到任何错误。

我发现 lluminate\Database\Eloquent\Model 中有一个名为 'query' 的函数,里面有这段代码-

public static function query()
{
    return (new static)->newQuery();
}

那么,我是否不允许使用 'query' 这个词来命名我的模型中的函数?

Method query() is used in Model。因此,仅重命名您的方法以避免不良行为。