簡體   English   中英

使用CakePHP在不同控制器中使用模型

[英]Using a model in a different controller with CakePHP

我的Cake應用程序中有一些控制器,即serversusers 我想編寫一個簡單的API並有一個名為ApiController的控制器。 在這個控制器中我想同時使用serversusers模型。

我是Cake的新手,但不是MVC。 從我到目前為止所發現的,Cake將自動使用ServersController控制器中的servers模型,我不知道如何顯式使用某個控制器的模型。

此外,我希望API請求僅在沒有任何HTML標記的情況下提供JSON。 我有一個默認布局,定義了我所有網站頁面的頁眉/頁腳,當我請求API函數以及視圖中的JSON時,它會輸出。 如何停止輸出布局,而只是為視圖提供服務?

您需要在控制器中聲明$uses屬性,請參閱http://book.cakephp.org/2.0/en/controllers.html#controller-attributes

$uses屬性說明控制器可用的模型:

<?php
class ApisController extends AppController{
    public $uses = array(
        'User',
        'Server'
    );
}

此外,您似乎沒有遵循Cake命名約定,其中控制器名稱是復數( ApisServers ),模型名稱是單數( ApiServer )。 這些名稱也應該在CamelCase中。 有關更多信息,請參閱http://book.cakephp.org/2.0/en/getting-started/cakephp-conventions.html

關於JSON,您可以使用Ajax布局來幫助您服務JSON請求。 有關如何實現此目的的更多信息,請參閱http://book.cakephp.org/2.0/en/views.html#layouts

Yottatron的答案就是現實,尼克薩維奇也是如此。 了解加載模型的不同方法之間的差異非常重要,以下評論簡潔地介紹了這些差異: https//stackoverflow.com/a/4753244/117413

就個人而言,我遠離重載全局$uses數組,因為我很少需要在全局級別引用所有模型對象(並且根據Cake文檔在這里重載它只是不好的做法: https:/ /book.cakephp.org/1.3/en/The-Manual/Developing-with-CakePHP/Controllers.html#components-helpers-and-uses

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM