如何在自定义入口点使用 Sugarcrm\Sugarcrm\Util\Uuid::uuid1()?
How to use Sugarcrm\Sugarcrm\Util\Uuid::uuid1() in a custom entry point?
我正在学习suitecrm。我需要使用来自自定义入口点的特定 id 创建一个新 bean,生成 id 不起作用,当我尝试此代码时
// Create bean
$testAccountBean = BeanFactory::newBean('Accounts');
// Set the new flag
$testAccountBean->new_with_id = true;
$id = Sugarcrm\Sugarcrm\Util\Uuid::uuid1();
$testAccountBean->id = $id;
$testAccountBean->name = generateRandomString();
$testAccountBeanId = $testAccountBean->save();
echo $testAccountBeanId;
我一无所获
当我检查调用 Sugarcrm\Sugarcrm\Util\Uuid::uuid1()
的结果时,return 没有任何结果。
感谢任何想法
该函数被调用create_guid,需要include/utils.php
,您就可以调用它。
<?php
if (!defined('sugarEntry')) {
define('sugarEntry', true);
}
require_once 'data/BeanFactory.php';
require_once 'include/utils.php';
$testAccountBean = BeanFactory::newBean('Accounts');
$id = create_guid();
话虽如此 - 如果您这样做 $testAccountBean->new_with_id = true;
,则意味着您将提供自己的 ID,我们使用它来插入来自其他 systems/migrations 的 ID。但是,如果您需要 GUID,只需删除该行,suitecrm 就会为您生成它。
您需要按以下方式调用它:
$testAccountBean->new_with_id = true;
$testAccountBean->id = create_guid();
请注意,如果您使用 create_guid 函数分配了自己的 ID,则还需要设置 "new_with_id"。你可以在这个路径找到函数:include\utils.php
函数体如下:
function create_guid()
{
$microTime = microtime();
list($a_dec, $a_sec) = explode(' ', $microTime);
$dec_hex = dechex($a_dec * 1000000);
$sec_hex = dechex($a_sec);
ensure_length($dec_hex, 5);
ensure_length($sec_hex, 6);
$guid = '';
$guid .= $dec_hex;
$guid .= create_guid_section(3);
$guid .= '-';
$guid .= create_guid_section(4);
$guid .= '-';
$guid .= create_guid_section(4);
$guid .= '-';
$guid .= create_guid_section(4);
$guid .= '-';
$guid .= $sec_hex;
$guid .= create_guid_section(6);
return $guid;
}
我正在学习suitecrm。我需要使用来自自定义入口点的特定 id 创建一个新 bean,生成 id 不起作用,当我尝试此代码时
// Create bean
$testAccountBean = BeanFactory::newBean('Accounts');
// Set the new flag
$testAccountBean->new_with_id = true;
$id = Sugarcrm\Sugarcrm\Util\Uuid::uuid1();
$testAccountBean->id = $id;
$testAccountBean->name = generateRandomString();
$testAccountBeanId = $testAccountBean->save();
echo $testAccountBeanId;
我一无所获
当我检查调用 Sugarcrm\Sugarcrm\Util\Uuid::uuid1()
的结果时,return 没有任何结果。
感谢任何想法
该函数被调用create_guid,需要include/utils.php
,您就可以调用它。
<?php
if (!defined('sugarEntry')) {
define('sugarEntry', true);
}
require_once 'data/BeanFactory.php';
require_once 'include/utils.php';
$testAccountBean = BeanFactory::newBean('Accounts');
$id = create_guid();
话虽如此 - 如果您这样做 $testAccountBean->new_with_id = true;
,则意味着您将提供自己的 ID,我们使用它来插入来自其他 systems/migrations 的 ID。但是,如果您需要 GUID,只需删除该行,suitecrm 就会为您生成它。
您需要按以下方式调用它:
$testAccountBean->new_with_id = true;
$testAccountBean->id = create_guid();
请注意,如果您使用 create_guid 函数分配了自己的 ID,则还需要设置 "new_with_id"。你可以在这个路径找到函数:include\utils.php
函数体如下:
function create_guid()
{
$microTime = microtime();
list($a_dec, $a_sec) = explode(' ', $microTime);
$dec_hex = dechex($a_dec * 1000000);
$sec_hex = dechex($a_sec);
ensure_length($dec_hex, 5);
ensure_length($sec_hex, 6);
$guid = '';
$guid .= $dec_hex;
$guid .= create_guid_section(3);
$guid .= '-';
$guid .= create_guid_section(4);
$guid .= '-';
$guid .= create_guid_section(4);
$guid .= '-';
$guid .= create_guid_section(4);
$guid .= '-';
$guid .= $sec_hex;
$guid .= create_guid_section(6);
return $guid;
}