User Code List
PHP
---New Snippet
---New Snippet
---Symfony
------Tworzenie projektu
---------New Snippet
------Doctrine zamiast Propel
------często używane itp
---SVN
------SVN tortoise-nowy proj
------New Snippet
------Z tutoriala jobeet
---Yii
------1. Szkielet aplikacji
------2. Yiic na skróty
------3. Ustawienia bazy danych
------4. Scaffolding, CRUD, model tabeli db
------5. Uwierzytalenianie
------6. Model, rules()
------7. Model, safeAttributes()
------8. Model, relations()
------9. Kontroler, kontrola dostępu
------10. Model, zapisywanie, pobieranie elementów
------11. Formularze, budowa, przetwarzanie
------12. Szablony, widoki, partiale
------13. Themes, layouts
------ 5.1. Tworzenie widgetu logowania
------14. Ściąga, często używane itp cz.1
------15. Jak wykonać stronicowanie danych (pager)
------16. AJAX, aktualizowanie tresci po kliknieciu w button
---------New Snippet
------17. AJAX, aktualizowanie tresci po kliknieciu w cokolwiek
---------New Snippet
------18. Przetwrzanie danych z formularzy
------18. AJAX w AJAX, budowanie linków itp
---Konwersja systemu kodowania na inny
Apache
---Wirtualny host dla projektu
New Snippet
---New Snippet
JS
---Podświetlanie kontenera pola input
 
 
7. Model, safeAttributes()
 

Metoda safeAttributes(), czyli grupowe przypisywanie pól formularza

Metoda określa które atrybuty modelu mogą zostać przypisane grupowo podczas przekazywania danych z formularza do instancji modelu.

Przykład przypisania grupowego:

$post->attributes=$_POST['Post'];

Bez przypisywania grupowego musielibyśmy każdy atrybut modelu przypisać ręcznie do odpowiedniego pola formularza, np:

$post->title=$_POST['Post']['title'];

$post->content=$_POST['Post']['content'];

Przypisywanie grupowe niesie ze sobą potencjalne niebezpieczeństwo polegające na tym, że użytkownik będzie próbował wypełnić atrybut, którego wartość może być ustawiona tylko przez programistę (skrypt) np. id, godzina utworzena, aktualizacji, itp.

Aby zabezpieczyć się przed tym niebezpieczeństwem, w metodzie safeAttributes() w tablicy, określamy bezpieczne atrybuty, a więc te które mogą zostać przypisane grupowo.

Przykład metody safeAttributes() na przykładzie aplikacji bloga:

public function safeAttributes()

{

return array('title', 'content', 'status', 'tags');

}

Atrybuty modelu, które pojawiają się w formularzu w celu otrzymania danych wprowadzonych przez użytkownika mogą zostać zadeklarowane jako bezpieczne. Ponieważ te atrybuty otrzymywane są z wejść wprowadzonych przez użytkowników końcowych, powinny one zazwyczaj być powiązane z pewnymi regułami sprawdzania poprawności.

 
Sub-Article List