Kom ihåg mig?
Home Menu

Menu


CakePHP + query + joining tables

Ämnesverktyg Visningsalternativ
Oläst 2009-08-06, 21:36 #1
robert.liljedahls avatar
robert.liljedahl robert.liljedahl är inte uppkopplad
Medlem
 
Reg.datum: Feb 2006
Inlägg: 143
robert.liljedahl robert.liljedahl är inte uppkopplad
Medlem
robert.liljedahls avatar
 
Reg.datum: Feb 2006
Inlägg: 143
Hejsan. För de av er som som vet vem jag är så vet ni att det i huvudsak är en sak jag kan; Frontend. HTML+CSS+JS. Nu har tydligen min situation förändrats och jag ska lära mig CakePHP -utan- någon ordentlig PHP-/OOP-/MySQL-bakgrund. Alltså ska en gammal hund läras sittas. Fast lite bakvänt.
De var länge sedan jag kände mig såhär bortkommen och vilsen, samtidigt som jag på något sjukt sätt njuter lite av det.

Här min situation, och jag skulle bli otroligt tacksam för hjälp.

Article hasAndBelongsToMany Category, Location
Paper hasAndBelongsToMany Category, Location
Article belongsTo Paper
Paper hasMany Article

Joining tables:
articles_categories
articles_locations
categories_papers
locations_papers

Jag vill ändra $cond (eller göra de ändringar som är nödvändiga) så att jag får alla artiklar som:
har MINST en Category som matchar någon av Papers categories
OCH
har MINST en Location som matchar någon av Papers locations.

Ni kan ignorera det som just nu står i $cond.

$paper['Category'] innehåller följande 'categories' för Paper:
Kod:
Array
(
  [0] => Array
    (
      [id] => 1
      [title] => Turism
      [slug] => Turism
      [parent_id] =>
      [lft] => 1
      [rght] => 2
    )
 
  [1] => Array
    (
      [id] => 2
      [title] => Fritid
      [slug] => Fritid
      [parent_id] =>
      [lft] => 23
      [rght] => 24
    )
    ....
)
$paper['Location'] innehåller följande 'locations' för Paper:
Kod:
 
Array
(
  [0] => Array
    (
      [id] => 1
      [title] => Blekinge
      [slug] => blekinge
      [parent_id] =>
      [lft] => 1
      [rght] => 2
    )
 
  [1] => Array
    (
      [id] => 3
      [title] => Dalarna
      [slug] => dalarna
      [parent_id] =>
      [lft] => 25
      [rght] => 26
    )
    ...
)
ArticlesController:
Kod:
function archive($paper = null) {
    if (!$paper) {
      $this->Session->setFlash(__('Invalid Paper.', true));
      $this->redirect(array('action'=>'index'));
    }
    
    $paper = $this->Article->Paper->findBySlug($paper);
    $this->Article->recursive = 0;
    $cond = array("Article.paper_id" => $paper['Paper']['id']);
    
    $this->set('articles', $this->paginate('Article', $cond));
  }
Jag har suttit bokstavligen hela dagen och försökt lösa det här. Har provat en massa olika saker. Har läst om Ad-hoc, att använda bindModel mm.. men jag får inte till det.

Tack på förhand.
/Robert
robert.liljedahl är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-08-06, 21:47 #2
Perben Perben är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2009
Inlägg: 393
Perben Perben är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2009
Inlägg: 393
Kan du ställa ett riktigt (normalt) SQL query direkt eller måste du använda ramverket? Vansinnigt hur man kan komplicera saker med ramverk.. alltid lika förbluffande.
Perben är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-08-06, 21:57 #3
robert.liljedahls avatar
robert.liljedahl robert.liljedahl är inte uppkopplad
Medlem
 
Reg.datum: Feb 2006
Inlägg: 143
robert.liljedahl robert.liljedahl är inte uppkopplad
Medlem
robert.liljedahls avatar
 
Reg.datum: Feb 2006
Inlägg: 143
Citat:
Originally posted by Perben@Aug 6 2009, 21:47
Kan du ställa ett riktigt (normalt) SQL query direkt eller måste du använda ramverket? Vansinnigt hur man kan komplicera saker med ramverk.. alltid lika förbluffande.
Jo jag -kan- men kommer då tappa en hel del annan funktionalitet på köpet vilket i slutändan ger mig än mer jobb. Så det är inte att rekommendera. Däremot så kanske jag med lite flyt kan översätta en komplett sql-query till cake's syntax.
robert.liljedahl är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-08-06, 23:27 #4
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
Har inte stenkoll på vad du är ute efter men kan detta vara något?

http://www.volved.com/index.php/2009/03/26...ssociated-data/
andi är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 16:33.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017