我正在尝试让我的Wordpress子菜单页面从类中调用一个扩展父类的函数。父类需要def merge(lst_of_lsts):
res = []
for sublist in lst_of_lsts:
for i, ressublists in enumerate(res):
if sublist[1]==ressublists[0]:
res[i] += ([sublist[0],ressublists[-1]])
break
else:
res.append(sublist)
return res
作为Object
中的参数。
在父的构造函数中收到了对象,到目前为止似乎很好,但是当该类稍后运行时,方法page_form constructor
为空,我得到$this->model
..为什么?< / p>
我正在将一个类引用传递给wordpress Call to a member function get_primary_key() on a non-object
,这是我在下面的代码中做错了吗?或者我是否以某种方式构造我的代码错误?
我希望有一个呈现表单的类或方法,其他类可以使用并将唯一对象传递给此表单。我不需要帮助创建表单或对象本身,但我需要一些指导如何进行这种继承,最好是面向对象。
我的家长班:
add_submenu_page
我的主要插件文件:
<?php
class Backend
{
protected $model;
function __construct($model)
{
$this->model = model;
echo $this->model->get_primary_key() // this works fine. returns 'id' as string.
}
function page_form()
{
echo $this->model->get_primary_key(); // this gives me error, Call to a member function get_primary_key() on a non-object.
// This function should render a form,
// using parameters inside $this->model, but its NULL.
}
}
我的预订课程:
<?php
// ...
if(is_admin()) {
add_action( 'admin_menu', 'my_plugin_menu' );
}
function my_plugin_menu() {
add_menu_page(
'My plugin', // page-title
'My plugin', // label
'manage_options',
'my-plugin-menu', // unique-handle
'settings_start' // function
);
$bookings = new Bookings();
add_submenu_page(
'my-plugin-menu', // parent unique-handle
'Add new Booking', // page-title
'Add new Booking', // label
'manage_options',
'my-plugin-menu-add-booking', // submenu unique-handle
array(&$bookings, 'page_form') // this is the function to call, defined in parent class.
);
?>
答案 0 :(得分:0)
你在Backend的构造函数中忘记了$ model?
$this->model = $model;
添加此$时,我可以在“page_form”中访问$ this-&gt;模型