Temat: Relacje i błąd przy generowaniu obrazka
Potrzebowałem stworzyć relację pomiędzy użytkownikami, a przypisaną do nich grupą. Stworzyłem model Group
class Group extends AppModel {
var $name = 'Group';
var $displayField = 'name';
var $hasMany = array(
'Member' => array(
'className' => 'Member',
'foreignKey' => 'id',
'dependent' => false
)
);
}A w modelu Member (używam go zamiast User), mam:
var $name = 'Member';
var $displayField = 'username';
var $belongsTo = array(
'Group' => array(
'className' => 'Group',
'foreignKey' => 'group_id'
)
);Wszystko działa dobrze, jednak problem pojawia się w momencie, gdy z controllera chcę wywołać funkcję generującą obrazek captcha. Obrazek generowany jest klasycznie tzn.
header("Expires: Sun, 1 Jan 2000 12:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-Type: image/png");
imagepng($this->im);Problem jest w tym, że przy powyższej deklaracji zależności w modelu Member, do przeglądarki wysyłany jest nagłówek:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8natomiast kiedy usunę z modelu Member pole var $belongsTo - wszystko działa w porządku, obrazek się generuje i nagłówek wysyłany do przeglądarki ma wartość:
Accept: image/png,image/*;q=0.8,*/*;q=0.5Dlaczego dodanie relacji powoduje taki dziwny błąd? Tak jakby jakiś znak był wysyłany wcześniej i psuł definicję nagłówka.