2013-02-24 28 views
6

प्रोग्रामेटिक रूप से बोलते हुए, array लाने या शुगरसीआरएम बीन ऑब्जेक्ट्स का संग्रह करने का कोई तरीका है?शुगरसीआर बीन्स का संग्रह प्राप्त करना

यही है, मान लीजिए कि मैं कई खाता पंक्तियां प्राप्त करना चाहता हूं जिनमें उनके नाम पर Bank शब्द शामिल था। कच्चे एसक्यूएल के साथ, मैं कुछ ऐसा करूंगा जैसे

SELECT * 
FROM Accounts 
WHERE name LIKE '%Associates%`; 

क्या SugarCRM ORM का उपयोग ऐसा कुछ करने के लिए किया गया है? यदि नहीं, तो SugarCRM प्रोग्रामर आमतौर पर इस स्थिति को कैसे संभालते हैं? मुझे लगता है मैं डेटाबेस

$db   = DBManagerFactory::getInstance();   
$result  = $db->query('SELECT id FROM Accounts where name LIKE "%Banking%"'); 
$accounts = array(); 
while($row = $db->fetchRow($result)) 
{    
    $accounts[] = BeanFactory::getBean('Accounts', $row['id']); 
} 

लेकिन सबसे ORM की कि अक्षम माना जाएगा, और बुरे व्यवहार से ID की सूची का चयन करके एक साथ कुछ हैक कर सकता है। क्या कोई बेहतर तरीका है?

उत्तर

7

बल्कि का उपयोग

$bean = BeanFactory::getBean('Accounts'); 
$account_list = $bean->get_full_list("", "accounts.name like '%Associates%'"); 

जैसा कि get_list आपको list_max_entries_per_page के लिए परिभाषित किया गया है, आपको देगा।

6

यहाँ करने के लिए अलग अलग तरीकों के लिए एक महान संसाधन है (पूरी तरह से किया जाना है। मैं मंच के लिए नया हूँ और अपने बीयरिंग प्राप्त करने की कोशिश "नहीं, वहाँ ऐसा करने के लिए तरीका नहीं है" जवाब के लिए तैयार) एसक्यूएल बनाम मानक SugarBean का उपयोग करें: here

अपने उदाहरण के लिए:

$bean = BeanFactory::getBean('Accounts'); 
$account_list = $bean->get_list("", "accounts.name like '%Associates%'"); 
3

यह एक पुरानी सवाल है, लेकिन भविष्य पाठकों के लिए, SugarBean तरीकों get_list() और get_full_list() पदावनत हो रहे हैं और यह बजाय SugarQuery उपयोग करने के लिए सलाह दी जाती है।

$bean = BeanFactory::getBean('Accounts'); 
$query = new SugarQuery(); 
$query->from($bean, array('team_security' => false)); 
$query->where()->contains('name', 'Associates'); 
$account_list = $query->execute();