3
我想讓我的Wordpress子菜單頁面調用一個從類內部擴展父類的函數。父類預計Object
作爲其constructor
中的參數。WordPress的add_submenu_page不會使用類對象嗎?
該對象是在父級的構造函數中獲得的,而且目前看起來很好,但是當類稍後運行該方法時,page_form $this->model
爲空,我得到Call to a member function get_primary_key() on a non-object
。爲什麼?
我通過了一個類參考到wordpress 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.
);
?>
我的預約類:
<?php
use WordPress\ORM\Model\BookingModel;
class Bookings extends Backend
{
function __construct()
{
parent::__construct(new BookingModel());
}
// ...
}
?>