2

我正在尝试使用 P4A 应用程序框架制作小部件,并且我有一个反射声音代码到最后一个掩码,这应该使一个产生的小部件使用户能够移动到另一个应该执行不同功能的掩码,错误起源于代码所在的第 28 行;

->load($this->locations); 

我相信它扩展了课程,但我不确定,任何帮助......其余代码如下

class main_dashboard_mask extends P4A_Base_Mask
{

public $locations = array(
        array('value'=>'area1','description'=>'area one'),
        array('value'=>'area2','description'=>'area two'),
        array('value'=>'area3','description'=>'area three'),            
        );
public function __construct()
{
    parent::__construct();
    $p4a = p4a::singleton();
    $this->setTitle("Dashboard");

    $this->build('p4a_field','MeetingRooms');
    $this->MeetingRooms->setLabel("This is the meeting room label");
    $this->build('p4a_button', 'continue')
    ->setLabel('Continue?')
    ->implement("onclick", $this, "change");
   $this->build('p4a_field','booking')
    ->setlabel('Viewing?')
    ->setType('checkbox')
    ->setValue(true);
    $this->booking->label->setTooltip('If you are booking a meeting room, check this box');

    $this->build("P4A_Array_Source", "location")
    ->getPk("value")
    ->load($this->locations);
    $this->build('p4a_field','location')
    ->setLabel('location')
    ->setValue('area1')
    ->setType('select')
    ->setSource($this->location)
    ->setWidth(60);
    $this->weight->label->setWidth(60);
    $this->MeetingRooms();
}

private function MeetingRooms()
{
    $this->build('P4A_fieldset', 'widgetframe')
    ->anchor($this->location)
    ->anchorLeft($this->booking)
    ->anchorLeft($this->continue)
    ->setLabel('Meeting Room Bookings');
}

}

任何帮助将不胜感激=]。

4

2 回答 2

1

好吧试试这个,它可能对你更好。

这是代码:

public function __construct()
{
    parent::__construct();
    $this->setTitle("Dashboard");

    $this->build('p4a_field','MeetingRooms');
    $this->MeetingRooms->setLabel("This is the meeting room label");
    $this->build('p4a_button', 'continue')
    ->setLabel('Continue?')
    ->implement("onclick", $this, "change");

   $this->build('p4a_field','booking')
    ->setlabel('Booking?')
    ->setType('checkbox')
    ->setValue(false);

    $this->booking->label->setTooltip('If you are booking a meeting room, check this box');



    $this->build("p4a_db_source", "login")
    ->setTable("meetingrooms")
    ->load()
    ->firstRow();

    $this->build('p4a_field','location')
    ->setSource($this->login)
    ->setLabel('location')
    ->setType('select')
    ->setSourceValueField("position")
    ->setSourceDescriptionField("MeetingRoom")
    ->setWidth(120);


    $this->build("p4a_fieldset","Book")
    ->anchor($this->location)
    ->anchor($this->booking)
    ->anchor($this->continue)
    ->setLabel('Meeting room bookings');

    $this->display("main",$this->Book);


}


}

祝你好运 :) 感谢您接受我的才华 xx

于 2012-10-26T15:26:02.377 回答
1

通过查看类引用和代码,P4A_Data_Source::getPk()返回一个字符串,而不是一个对象,这就是您收到错误的原因。默认情况下,看起来 PK 的值NULL会猜测您正在返回。此外,该getPk方法似乎不接受任何论据。

您可以通过以不同的顺序链接来解决此问题:

$this->build("P4A_Array_Source", "location")
     ->load($this->locations)
     ->getPk();

这看起来是正确的,因为调用load()设置了 PK。

于 2012-10-22T15:51:07.617 回答