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

时间:2016-10-21 14:53:09

标签: php laravel laravel-5.3

我有这个基本的应用程序,我正在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'这个词来命名我模型中的函数吗?

1 个答案:

答案 0 :(得分:1)

http://www.electricrcaircraftguy.com/2016/10/syntaxhighlighter.html。因此,只需重命名您的方法以避免不良行为。