2014-01-21 20 views
1

TagController創建和保存組件,從不同的控制器不同勢model.non對象錯誤

public function view($id = null) { 
    if ($this->request->data != null) { 
     $this->Common->replyarticleAdd($this); 
    } 
} 

CommonComponent /*

App::uses('Link', 'Model'); 
App::uses('User', 'Model'); 
App::uses('AppController', 'Controller');*/ 

我想,我應該寫它,它加載模型但不起作用。

ClassRegistry::init('Article'); 
App::uses('Article', 'Model'); 
ClassRegistry::init('Article'); 
App::uses('Article', 'Model'); 

class CommonComponent extends Component { 
    var $uses = array('Article'); 
    public function replyarticleAdd($that = null) { // $this error can not re-assign. 

     debug($that->request->params['pass'][0]); 
     if ($that->request->params['pass'][0] != null) { 
      $this->Article->create(); // that is no effect 

錯誤Call to a member function create() on a non-object

文件:G:\昴\ XAMPP \ htdocs中\ cakephp的\應用\控制器\元器件\ CommonComponent.php Line: 13 = $this->Article->create();

在控制器創建是確定,但在組分它傾斜。我怎樣才能做到這一點?

回答

1

在組件中,嘗試使用模型這種方式工作:

App::uses('Article', 'Model'); 
$Article = new Article(); 
$Article->create(); 

組件沒有$uses屬性,如控制器。

您還可以使用:

$Article = ClassRegistry::init('Article'); 
$Article->create(); 
+0

由於它的工作原理 –

相關問題