OctoberCMS 范围不适用

OctoberCMS scope not applying

所以这里的场景是我试图在 OctoberCMS 中创建一个简单的范围,它将允许我使用构建器插件列表组件过滤查询。在我的模型中,我定义了范围:

public function scopeFirst($query)
{
    return $query->where('practice_name',1);

}

这应该限制查询只获取值为 1 的记录。组件识别这个范围并允许我从下拉列表中选择它,如我的 index.htm 所示文件:

[builderList]
modelClass = "vetadmin\Practicedetails\Models\Practicedetails"
scope = "scopeFirst"
displayColumn = "id"
noRecordsMessage = "No records found"
detailsPage = "-"
detailsUrlParameter = "id"
pageNumber = "{{ :page }}"

是否有人知道可能导致它不应用约束的原因?当前 - 所有 - 正在返回记录。该文档对此没有特别详细说明,只是建议您需要在插件模型 php 文件中定义范围(正如我所做的那样)

https://octobercms.com/docs/database/model#query-scopes

是我指的文档。

谢谢。

嗯,这对 larval eloquent model

来说有点混乱

I have tested your code and scope

然后我才意识到 scopeFirst 可以像这样应用于模态 $modal->first() <= this is issue its reserved method

据我所知 first [ref: https://laravel.com/docs/5.7/eloquent] 是从 collection/models 获取第一条记录的方法。 [ 所以,你的示波器就是这样处理的,结果什么也没做!]

So, just change your scope name like scopeFirstPractice etc.. can solve our issue.

并且正常使用

[builderList]
modelClass = "vetadmin\Practicedetails\Models\Practicedetails"
scope = "scopeFirstPractice"

它应该绝对有效。 【我测试过了。 ]

如有疑问请评论。