Octobercms: плагин Locaion от RainLab

Я пытаюсь использовать плагин, чтобы показать все национальности во внешней форме, я могу вытащить страны, но я не могу получить выбранный клиентом вариант для сохранения в БД. При попытке получить доступ к данным на внутренних формах я получаю ошибки. (Класс модели Lindelwa \ EBilitiesResearch \ Models \ Application должен определять метод getCountryIdOptions (), возвращающий параметры для поля формы 'country_id'.)

Я попытался разобраться в документации:

http://octobercms.com/docs/backend/forms#field-dependencies

Но я потерпел неудачу.

Вот изображение того, чего я пытаюсь достичь. введите здесь описание изображения

Я получаю ошибку при попытке изменить запись внутренней формы

Класс модели

Я хочу иметь возможность отображать страны в раскрывающемся списке во внешнем интерфейсе, и когда к ним можно получить доступ в серверной части, я должен иметь возможность проверить, какая страна была выбрана, и все равно отображать все страны в раскрывающемся списке .


person Lindelwa    schedule 12.12.2017    source источник


Ответы (1)


Хорошо, если вы хотите отобразить раскрывающийся список в бэкэнд-форме, в первую очередь вам нужен список / данные для отображения в раскрывающемся списке, тогда будет установлено только выбранное значение,

чтобы заполнить значения в раскрывающемся списке, вам необходимо предоставить метод, ваше имя поля - country_id, поэтому вы уже добавили getCounteryIdOptions (), поэтому вам просто нужно вернуть из него массив.

public function getCounteryIdOptions() {
    // you fetch all records / same way as in frontend you are showing
    // format value/id => title

    $result = [];
    // foreach loop
    $result[$record->id] = $record->title;
    // $result[1] = 'Xyz Country';
    // for loop end
    return $result;
}

поэтому он вернет весь список стран, теперь он будет добавлен в раскрывающийся список, а выбранное значение, выбранное пользователем, будет показано выбранным

если он не работает, прокомментируйте.

person Hardik Satasiya    schedule 12.12.2017