2014-09-30 50 views
0

您好親愛的StackOverflowers,我是CakePHP的新手。我想在同一模型中訪問兩個表格的學生和教師。怎麼做 ?只有一張桌子,蛋糕烘烤產生控制器,模型和視圖。如果可以使用一個模型訪問兩個表,我不想使用第三個模型訪問它們。 謝謝。CakePhp在一個定製模型中訪問多個表格

+2

您應該爲每個表格創建一個模型。然後,您可以調用任何型號的模型 – 2014-09-30 13:14:48

+0

您能描述一下您試圖完成的任務嗎(即業務問題陳述)?從技術上講,只有一個表可以用作模型的基礎,但是有技術可以添加其他表(例如,使用SQL視圖,QUERY方法中的JOIN子句)。這些技術具有侷限性。 – AgRizzo 2014-09-30 13:43:59

+0

感謝AgRizzo的快速響應。我想要在單個頁面上顯示數據表格的兩個表格,但Cake創建了兩個控制器,兩個模型和兩個視圖,兩者都有自己的鏈。 – Meer 2014-09-30 13:48:42

回答

0

我不認爲這是好的方法,因爲它違背了約定一張表 - 一個模型,但當然取決於你。您可以使用公共字段$useTable即時更改表格。

$this->ModelName->useTable = 'table_name'; 

因此,在這種情況下,您必須在每次對數據庫執行任何操作時設置此變量。相反,只需撥打$this->ModelName->find();,您必須在find()聲明前添加額外的行,以確保您的查詢轉到適當的表格。

+0

非常感謝親愛的瑪麗安0。從ModelName中表達你的意思是我的自定義模型?而當你提到一個約定一個表 - 一個模型時,我應該用一個模型訪問每個表,然後用第三個模型訪問這兩個表?或者只是在我的控制器中使用這些模型? – Meer 2014-09-30 13:44:41

+0

是的,我的意思是你的'ModelName'自定義模型。所以這取決於你需要訪問什麼樣的數據,但在大多數情況下,你只需要在控制器中使用你的模型。如果你在表格之間有了實現,你可以在一個模型中設置它們,然後你只需調用這個特定的模型,並且你有來自你所有定義模型的數據。 – marian0 2014-09-30 14:17:44

+0

我接受了你的建議,併爲我的每個表格使用了一個模型,並理解模型的行爲就像我直接與表格聯繫。我創建了自己的控制器和我自己的視圖以及由Cake Bake創建的刪除視圖和控制器。再次感謝。 – Meer 2014-10-04 14:53:23