Область применения OctoberCMS не применяется

Итак, сценарий здесь таков, что я пытаюсь создать простую область в 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

это документация, на которую я ссылаюсь.

Благодарю.

0 ответов

Хм, это немного сбивает с толку larval eloquent model

Я проверил ваш код и область

Тогда я просто понял, что scopeFirst можно применять на модальном вот так $modal->first() <= this is issue its reserved method

Согласно моим знаниям first [ref: https://laravel.com/docs/5.7/eloquent] - это способ получить первую запись из collection/models, [ Итак, с вашей областью обращаются так и в итоге ничего не делают! ]

Итак, просто измените название вашей области видимости, как scopeFirstPractice и т.д.. может решить нашу проблему.

и просто нормально использовать

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

Это должно определенно работать. [Я проверил. ]

если есть сомнения, пожалуйста, прокомментируйте

Другие вопросы по тегам