I have two tables transactions and szamlaszam (it means account in hungarian). Between two tables has a relation: transaction.szamlaszam_id -> szamlaszam.id.
in transactions.php
public function relations()
{
return array(
'szamlaszam' => array(self::BELONGS_TO, 'szamlaszam', 'szamlaszam_id'),
);
in szamlaszam.php
public function relations()
{
return array(
'transactions'=>array(self::HAS_MANY, 'transaction', 'szamlaszam_id'),
);
}
It’s ok, relation is workin.
I generated CRUD for transaction. In transactions admin.php view I replaced the szamlaszam_id column with szamlaszam.szam (it means account’s account number)
If it is an attribute of a related AR object, the name should be prefixed with the relation name (e.g. ‘author.name’, where ‘author’ is the relation name).
Nos, lehet rendezni a CSort-tal is, de nem a link metódusával. Az csak a táblában használt rendezés megváltoztatásához szükséges linket generálja.
Ha jól vettem ki a szavaidból, az alapértelmezett rendezést akarod módosítani, ahhoz pedig
vagy az ActiveRecord-hoz befolyó kérést módosítod a fent leírtak szerint,
vagy a CSort::defaultOrder értéket változtatod meg (ez esetben meg kell hívnod a CSort::applyOrder()-t egy CDbCriteria-n, amit az AR-kérésnél használsz fel).
Ha csak a CSort::link()-et akarod használni, akkor ellenőrizd, hogy jól konfiguráltad-e a $sort->attributes tömböt.
Nem az alapertelemezes szerintit, hanem amikor a tranzakciokat kilistazom, akkor nem a szamlaszam.szamlaszam_id szerint akarom rendezni a szamlaszam oszlopot, hanem a szamlaszam.szam alapjan.