不是对象错误

Cec*_*uez 1 php vtiger

我已经为vTiger编写了这段代码,试图将Quote模块绑定到Lead模块的字段中:

$Vtiger_Utils_Log = true;
include_once('vtlib/Vtiger/Menu.php');
include_once('vtlib/Vtiger/Module.php');
//(module name without space)
$module = Vtiger_Module::getInstance('Leads');

// Create Block instance
$block1 = new Vtiger_Block();
$block1->label = 'Block Name';
$block1 = Vtiger_Block::getInstance('LBL_LEAD', $module);

$field0 = new Vtiger_Field();
$field0->name = 'Leads';
$field0->label = 'Leads';
$field0->uitype = 10;
$field0->typeofdata = 'V~O';
$field0->setRelatedModules(Array('Quotes'));
$block1->addField($field0);
Run Code Online (Sandbox Code Playgroud)

这是我得到的回应:

Setting Leads relation with Quotes ... DONE
Fatal error: Call to a member function addField() on a non-object in /var/www/duvtiger/vtigerscript.php on line 23
Run Code Online (Sandbox Code Playgroud)

为什么$ block1不是一个对象?

我该如何解决?我究竟做错了什么?这就是我要设置相关字段所需要做的,对吗?

Mil*_*ani 5

尝试此代码以添加新的相关字段.这肯定会对你有所帮助.您在添加字段之前设置了关系,这就是您获得的错误是"block1不是对象"的原因.

$field0 = new Vtiger_Field();
$field0->name = 'quotes';
$field0->column = 'quotes';
$field0->table = $module->basetable; 
$field0->label = 'Test2';
$field0->uitype = 10;
$field0->typeofdata = 'V~O';
$block1->addField($field0);
$field0->setRelatedModules(Array('Quotes'));
Run Code Online (Sandbox Code Playgroud)