在现代版本的SugarCRM中,将数据加载到bean对象
之后$account = BeanFactory::getBean('Accounts')
->retrieve_by_string_fields(array('name'=>'Q.R.&E. Corp'));
您可以通过直接访问属性来获取数据
$account->name
或使用getFieldValue
$account->getFieldValue('industry')
getFieldValue
是否存在历史原因?是否有规范的方法来决定何时使用getFieldValue
与直接对象属性方法?
答案 0 :(得分:1)
我看到的唯一区别是,如果该字段不存在,它将不会抛出PHP错误,如果它是一个布尔值,它将把它转换为整数。请参阅函数定义...
function getFieldValue($name)
{
if (!isset($this->$name)){
return FALSE;
}
if($this->$name === TRUE){
return 1;
}
if($this->$name === FALSE){
return 0;
}
return $this->$name;
}
答案 1 :(得分:1)
我知道这是旧的,但我想澄清一下,如果该属性不存在,PHP不会抛出错误。直接访问属性和使用getFieldValue方法之间的唯一区别是,您将使用属性接收NULL,使用getFieldValue方法接收FALSE。
以此示例来证明PHP错误不会被抛出,可能是一个警告,但没有任何致命的。
<?php
class TestClass {
public $one = 1;
}
$testClassInstance = new TestClass();
var_dump($testClassInstance->one); // Result = int(1)
var_dump($testClassInstance->two); // Result = NULL
只是想澄清一下,因为原来的回答是&#34;抛出错误&#34;在编程世界&#34; throw&#34;这意味着你可以得到一个例外,如果没有&#34;被抓住&#34;你的应用可能是致命的。