2011-04-15 60 views
0

我有3個表:用戶,圖像(外鍵user_id),評論(外鍵:user_id和image_id)CakePHP數據庫如何工作?

有人可以解釋我或發送給我的鏈接良好教程如何使用數據庫? 我的意思是,例如: 1.我想拍攝評論表中有任何評論的所有圖片。在SQL中:從圖像中選擇我i,Commets c,其中i.id = c.image_id ???

你能解釋我怎樣才能從一個控制器訪問另一個模型? 我試圖在圖像控制器: $ data = $ this-> Image-> query('Select * from Images i,Comments c where i.id = c.image_id'); 並鑑於:$圖像[ '身份證'],但我有錯誤:未定義指數:ID [APP \意見\影像\ commented.ctp,

所以它不工作:/

  1. 如何我可以刪除圖片及其所有評論嗎?我用Zend和我習慣了它,我不知道如何做同樣的想法在cakePHP:/

有人可以解釋我如何在這個蛋糕中使用數據庫PHP我知道有find,findAll等功能,但所有這些都來自控制器級別前。 $ this-> Image-> find()etc ...

我需要比基本的CakePHP食譜更好的教程:/。我願意接受任何訴訟。 Regards,

+0

我明白了這個問題。這可能是措辭不同,用更少的話說......也許是這樣的:你如何在一個控制器中使用多個模型?但通讀足夠清楚......至少對我而言。 – 2011-04-18 02:49:25

+0

我和你在一起,無法理解CakePHP,因爲這個幫助太抽象了。我一直在學習PHP,所以我想知道PHP如何變成CakePHP並幫助我。我發現的所有指南都顯示無盡的課程。世界需要更多的菜鳥指南,因爲如果你想要一個指導你是一個菜鳥。 – 2013-04-25 05:24:46

回答

2

您可以通過多種方式之一在控制器中引用模型。兩種常見的方法是用在控制器的頂部使用變量:

var $uses = array('User','Image'); 

或者你可以把它內嵌在你的函數:

$this->loadModel('Image'); 
$this->Image->find('all'); ... 

此外,如果您有通過鏈接的模型一個foriegn鍵,你甚至可以把它想:

$this->User->Image->find('all'); 

一旦你得到的CakePHP的結構怎麼樣的東西,它非常清楚的竅門。

所以對於這個問題你的SQL語句,你可以不喜歡從用戶控制器以下:

class UsersController extends AppController { 
    var $name = 'Users'; 
    var $uses = array('User','Image','Comments'); 

    function {my_function_name}() { 
     $this->Images->recursive = 1; 
     $images = $this->Image->find('all'); 
    } 
} 

現在,只要你relationships在模型正確,遞歸函數將建立包含所有註釋的圖像數組。

array(
    [Image] => array(
     image data, 
     [comments] => array(
      [0] comment data, 
      [1] comment data, 
      [2] ... 
     ) 
    ) 
) 

我希望至少能把你推向正確的方向。快樂的編碼!

+0

是的,我需要知道你在這裏寫的是什麼。有一切,並感謝它,我不會有任何問題更多!非常感謝你! – canimbenim 2011-04-15 22:23:21

+0

不用擔心!很高興我能幫上忙。我試圖鼓勵大家嘗試一下CakePHP。我喜歡這個框架。一旦你瞭解它,它使開發變得如此簡單和超快。 – 2011-04-18 02:50:41