无法在 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。因此,仅重命名您的方法以避免不良行为。
我正在 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。因此,仅重命名您的方法以避免不良行为。