Въпроси за CakePHP Form: скрити полета и стойности по подразбиране

Търсих в мрежата, прекарах цял уикенд в изпробване на неща, но имам нужда от експертен съвет, за да избера най-добрите и безопасни решения за CakePHP 1.3.10

В моя формуляр за потребители/добавяне имам следните стойности, които са в таблицата Потребители, но не се нуждаят от въвеждане от формуляра. Независимо от това, когато изпечете приложение, Cake ще ги включи във формата:

  • брой посещения
  • роля (4 опции, заредени от таблицата с роли).

Какво искам да направя:

  • Не искам да показвам брой посещения и роля във формата
  • Искам да дам на ролята стойността по подразбиране „стандартен потребител“ при всяка регистрация

Мога да използвам „скрито“, за да скрия броя на посещенията и входа на ролите и да задам стойности по подразбиране в базата данни, но чух, че шпионите могат да променят стойността на скрито поле и да инжектират вашата база данни.

Сигурен съм, че не съм първият с тази настройка. Моля, кажете ми как го направихте. Благодаря!


person ChrisDK    schedule 11.07.2011    source източник


Отговори (1)


  1. Просто не извеждайте полето за въвеждане, ако не ви трябва.
  2. Задайте стойността в контролера, преди да запазите:

    if ($this->data) {
        $this->data['Model']['role'] = 'default role';
        if ($this->Model->save($this->data)) ...
    }
    
person deceze♦    schedule 11.07.2011
comment
Това има ТОЛКОВА смисъл. Това е ужасен пропуск в документацията на CakePHP, че те не покриват тази тема! - person DirtyBirdNJ; 08.11.2011