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"
它应该绝对有效。 【我测试过了。 ]
如有疑问请评论。
所以这里的场景是我试图在 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"
它应该绝对有效。 【我测试过了。 ]
如有疑问请评论。