Dla modelu komentarza Comment
musimy głównie dostosować metody rules()
oraz attributeLabels()
. Metoda attributeLabels()
zwraca mapowanie pomiędzy nazwą atrybutu a etykietą atrybutu. Nie potrzebujemy dotykać metody relations()
ze względu na to, że kod wygenerowany przez narzędzie yiic
jest wystarczająco dobry.
rules()
¶Najpierw dostosowujemy reguły sprawdzania poprawności wygenerowane przez narzędzie yiic
. Następujące reguły są używane dla komentarzy:
public function rules()
{
return array(
array('content, author, email', 'required'),
array('author, email, url', 'length', 'max'=>128),
array('email','email'),
array('url','url'),
);
}
W powyższym kodzie, określamy, że atrybuty: autor author
, e-mail email
oraz zawartość content
są atrybutami wymaganymi (nie mogą być puste); długość atrybutu autor author
, e-mail email
oraz adres URL url
nie może przekraczać 128 (znaków); atrybut e-maila email
musi być poprawnym adresem mailowym; atrybut adresu URL url
musi być poprawnym adresem URL.
attributeLabels()
¶Następnie dostosowujemy metodę attributeLabels()
aby zdefiniować etykiety wyświetlane dla każdego z atrybutów modelu. Metoda ta zwraca tablicę par nazwa-etykieta.
public function attributeLabels()
{
return array(
'id' => 'Id',
'content' => 'Comment',
'status' => 'Status',
'create_time' => 'Create Time',
'author' => 'Name',
'email' => 'Email',
'url' => 'Website',
'post_id' => 'Post',
);
}
Wskazówka: Jeśli etykieta dla atrybutu nie jest zadeklarowana w metodzie
attributeLabels()
do wygenerowania odpowiedniej etykiety zostanie użyty algorytm. Na przykład, etykietaCreate Time
będzie wygenerowana dla atrybutucreate_time
bądź teżcreateTime
.
Ponieważ chcemy zapisać czas utworzenia komentarza, nadpisujemy metody beforeSave()
komentarza Comment
tak jak to zrobiliśmy dla modelu wiadomości Post
:
protected function beforeSave()
{
if(parent::beforeSave())
{
if($this->isNewRecord)
$this->create_time=time();
return true;
}
else
return false;
}
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.