International software company is looking for PHP/MySQL programmers
Zobrazují se odpovědi 1 až 3 z 3

CakePHP, relace v databázích

  1. Bacon Hodnocení: 1 (100%) Bacon is a jewel in the rough Bacon is a jewel in the rough Bacon is a jewel in the rough
    1
    Dobrý večer,

    tak nějak se snažím naučit CakePHP a teď jsem došel k problému, kdy bych rád využil relační možnosti v CakePHP.

    Mám 3 tabulky, jejich struktura viz obrázek:


    Vazby:
    1 artist může mít více songs
    1 song má pouze jednoho artist
    1 song může mít více files
    1 file má pouze jeden song

    Snažil jsem se využít automatiky, kterou CakePHP nabízí, tedy:

    PHP kód:
    <?php

      
    class ArtistsController extends AppController {
      
        public 
    $name      'Artists';
        public 
    $hasMany   'Song';
        
        
    //// INDEX
        
    public function index() {
        
          
    $this->set'artist'$this->Artist->find'first' ) );
        
        }
        
      }

    ?>
    Zatím v CakePHP poněkud tápu, takže budu rád za jakékoliv nakopnutí. U SongsController to bude vlastně fungovat stejně, jen místo $hasMany bude pravděpodobně $belongsTo, příp. $hasOne.

    Předem moc děkuju za rady.

    ---------- Příspěvek doplněn 16.01.2012 v 20:14 ----------

    EDIT: Jsem idiot, cpal jsem to do Controlleru, ne do Modelu. Ach jo. Pardon. Nicméně pro jistotu to tu nechám, kdyby se mi nedařilo dále.

  2. Co se právě děje na Webtrhu?
  3. Sice už jste to vyřešil, ale ještě k zamyšlení:
    1 skladba může mít víc autorů - např. remix, cover
    1 soubor může obsahovat víc skladeb

  4. Bacon Hodnocení: 1 (100%) Bacon is a jewel in the rough Bacon is a jewel in the rough Bacon is a jewel in the rough
    3
    Děkuji za podněty :) Samozřejmě, v praxi je to tak, že jedna skladba má často více autorů v případě spolupráce, o tom vím, nicméně zde je to řešeno opravdu takto (data jsou dodávána třetí stranou), tedy jedna skladba má vždy pouze jednoho autora a 1 soubor patří vždy jedné konkrétní skladbě.

Hostujeme u Server powered by TELE3