簡體   English   中英

CakePHP致命錯誤調用非對象上的成員函數schema()

[英]CakePHP Fatal Error Call to a member function schema() on a non-object

我找到一個解決方案有點麻煩..

Error: Call to a member function schema() on a non-object
File: /Cake/Model/Model.php
Line: 3627

在我的數據庫中有表格文章主題標簽和關聯articles_hashtags與foreignkeys article_id和hashtag_id ..所以我想知道每篇文章有哪些主題標簽..

我的文章模型

class Article extends AppModel {
 public $hasAndBelongsToMany = array(
    'Hashtag' =>
        array(
            'className' => 'Hashtag',
            'joinTable' => 'articles_hashtags',
            'foreignKey' => 'article_id',
            'associationForeignKey' => 'hashtag_id',
            'unique' => true,
            'conditions' => '',
            'fields' => '',
            'order' => '',
            'limit' => '',
            'offset' => '',
            'finderQuery' => '',
            'with' => ''
               )  
            ); 
          }

文章管理員

class ArticleController extends AppController {
var $name = 'Article';
 public $helpers = array("Html", "Form");
    public function index() 
    {
    $this->set("posts", $this->Article->find("all"));

    } 
}

謝謝你的幫助!!

另外:如果我將生成的sql select查詢從調試器sql日志放入我的sql數據庫中,我得到了正確的結果..所以我猜控制器出了問題?!

我有同樣的問題,所以可以將$hasAndBelongsToMany剝離到最小鍵。

問題是你在$hasAndBelongsToMany數組上使用'with'鍵。 刪除它或將其設置為'articles_hashtags':

class Article extends AppModel {
  public $hasAndBelongsToMany = array(
    'Hashtag' =>
        array(
            'className' => 'Hashtag',
            'joinTable' => 'articles_hashtags',
            'foreignKey' => 'article_id',
            'associationForeignKey' => 'hashtag_id',
            'unique' => true,
            'conditions' => '',
            'fields' => '',
            'order' => '',
            'limit' => '',
            'offset' => '',
            'finderQuery' => '',
            'with' => 'articles_hashtags'
        )  
      ); 
   }

庫模型代碼試圖訪問'with'鍵的值,該鍵為空,因此是非對象錯誤。

從CakePHP文檔 ,關於$hasAndBelongsToMany數組:

  • with :定義連接表的模型名稱。 默認情況下,CakePHP將為您自動創建模型。 使用上面的例子,它將被稱為IngredientsRecipe。 通過使用此鍵,您可以覆蓋此默認名稱。 連接表模型可以像任何“常規”模型一樣直接訪問連接表。 通過創建具有此類名稱和文件名的模型類,您可以向連接表搜索添加任何自定義行為,例如向其添加更多信息/列。

您是否在控制器中初始化了模型文章的對象? 您可以通過在控制器中使用字段$ uses來完成此操作。 ArticleController中添加以下行:

public $uses = array('Article');

控制器名稱是復數

你不需要在ArticlesController中聲明模型文章,蛋糕的魔法為你做。

暫無
暫無

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

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