我像这样创建我的组件
<?php
class UtilComponent extends Object
{
function strip_and_clean( $id, $array) {
$id = intval($id);
if( $id < 0 || $id >= count($array) ) {
$id = 0;
}
return $id;
}
}
并像这样使用
var $name = 'Books';
var $uses = array();
var $components = array('Util');
public function index($id = 0){
$this -> set('page_heading','Packt Book Store');
$book=array(
'0'=>array(
'bookTitle' =>'Object Oriented Programming with PHP5',
'author' =>'Hasin Hayder',
'isbn' => '1847192564',
'releaseDate' => 'December 2007'
),
'1'=>array(
'bookTitle' =>'Building Websites with Joomla! v1.0',
'author' =>'Hagen Graf',
'isbn' => '1904811949',
'releaseDate' => 'March 2006'
),
);
$id = $this->Util->strip_and_clean( $id, $book);
$this->set('book',$book[$id]);
$this->pageTitle='Welcome to the Packt Book Store!';
}
但是我收到了这个错误
**call_user_func_array()
期望参数1是有效的回调,类'UtilComponent'没有方法'initialize'[CORE \ Cake \ Utility \ ObjectCollection.php,第130行] **
答案 0 :(得分:7)
我认为某个组件应该扩展Component
而不是Object
:
class UtilComponent extends Component
{
}
然后,组件将继承initialize()
方法。
答案 1 :(得分:0)
遇到了类似的问题。
除了错误消息 ...没有方法'初始化'... ,还有一条消息 ...没有方法'startup'。 .. 强>
问题是我在Controller
目录中创建了组件文件,而不是Controller/Component
。
答案 2 :(得分:0)
我也面临像
这样的问题警告(2):call_user_func_array()期望参数1是有效的回调,类&#39; ImageComponent&#39;没有方法&#39;初始化&#39; [CORE \ Cake \ Utility \ ObjectCollection.php,第128行]
警告(2):call_user_func_array()期望参数1是有效的回调,类&#39; ImageComponent&#39;没有一种方法&before;之前&#39; [CORE \ Cake \ Utility \ ObjectCollection.php,第128行]
警告(2):call_user_func_array()期望参数1是有效的回调,类&#39; ImageComponent&#39;没有方法&#39;关闭&#39; [CORE \ Cake \ Utility \ ObjectCollection.php,第128行]
解决方案是:
将Image组件添加到控制器/组件中,然后
更改类ImageComponent扩展对象{...}
使用类ImageComponent扩展Component {...}