Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki,

 

Sakau gal atsiras naudojančių cakePHP ir galės padėti, nes google nelabai draugiška šiuo klausimu (o gal nelabai sekasi suformuoluoti pačią užklausą).

 

Tarkim: user hasMany tickets;

 

Kaip man reikia suskaičiuoti (count) naudojant hasMany tarkim įrašus kurie neturi iš vis ticket'ų, arba imti user'ius tik tuos kurie turi ticket'us?

 

----------------------

 

Sprendimas: counterCache

Esmė tame, kad counter'is atnaujinamas tik tada tarkim kada trinamas / pridedamas įrašas kažkoks, mano atveju, - ticket'as tarkime.

Tačiau, count'as tam user'iui atsinaujins tik tada kada konkrečiai tam user'iui bus pridėtas arba ištrintas ticket'as, taigi norint iš kart turėti count'us visiems tarkim useriams tai jau reikia juos persigeneruoti rankomis, o toliau visą darbą atliks pats cake'as.

Redagavo qutwala
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Vat kažkas tokio: http://stackoverflow.com/questions/2308087/cakephp-model-count-in-containable

Tik pagal pateiktus pavyzdžius mano count'as vistiek 0, nors tarkim ir insert'inu naujus duomenis.

 

pushkis , nelabai supratau kuo tavo pasiūlytas variantas galėtų man pagelbėti?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Vat kažkas tokio: http://stackoverflow.com/questions/2308087/cakephp-model-count-in-containable

Tik pagal pateiktus pavyzdžius mano count'as vistiek 0, nors tarkim ir insert'inu naujus duomenis.

 

pushkis , nelabai supratau kuo tavo pasiūlytas variantas galėtų man pagelbėti?

 

Na, prisikabini lentą su hasMany, nustatay sąlgyą kokius rezus imti ir countini.

 

O jei tau tiesiog reikia paskaičiuti įrašų kiekį, tai darai taip:

 

$this->Classified->find('count', array('conditions' => array(

'classifieds_categories_id' => $key,

'active_until >=' => date('Y-m-d'),

'is_deleted' => array('0', null))));

 

Jei ne taip supratau tavo klausimą, tai atsiprašau :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na, prisikabini lentą su hasMany, nustatay sąlgyą kokius rezus imti ir countini.

 

O jei tau tiesiog reikia paskaičiuti įrašų kiekį, tai darai taip:

 

$this->Classified->find('count', array('conditions' => array(

'classifieds_categories_id' => $key,

'active_until >=' => date('Y-m-d'),

'is_deleted' => array('0', null))));

 

Jei ne taip supratau tavo klausimą, tai atsiprašau :)

 

 

Na ne visai taip, bet dėkui, kad stengiesi padėti. ;)

Man idealiai tiktų counterCache tik bjaurybė kažkodėl nenori veikti. :(

 

Darau šitaip:

 

class User extends AppModel {

// <...>
public $hasMany = array('Ticket');
// <...>
}

 

class Ticket extends AppModel {

// <...>
   public $belongsTo = array(
       'User' => array(
           'counterCache' => true
       )
   );
// <...>
}

 

`users` lentoje yra fieldas `ticket_count`;

 

Ir no go, count'as pastoviai, - 0;

Any ideas? :/

Redagavo qutwala
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...