से मान सरणी कैसे प्राप्त करें Yii का उपयोग करके, मैं सक्रिय रिकॉर्ड से सरणी कैसे प्राप्त कर सकता हूं।वाईआई - सक्रिय रिकॉर्ड
इस तरहकहो कुछ: इस तरह
array('foo', 'bar', 'lala')
कुछ से:
MyTable::model()->findall()
से मान सरणी कैसे प्राप्त करें Yii का उपयोग करके, मैं सक्रिय रिकॉर्ड से सरणी कैसे प्राप्त कर सकता हूं।वाईआई - सक्रिय रिकॉर्ड
इस तरहकहो कुछ: इस तरह
array('foo', 'bar', 'lala')
कुछ से:
MyTable::model()->findall()
ActiveRecord का उपयोग न करें। CDBCommand->queryColumn()
मेह ... Django यह है: https://docs.djangoproject.com/en/dev/ref/models/querysets/#values-list क्यों Yii भी ऐसा नहीं कर सकता है? – Marian
यदि आप पहले से किसी भी का उपयोग कर रहे हैं या उसके ActiveRecord के लिए ढूँढें, तो यह स्पष्ट रूप से उन्हें कॉल नहीं करेगा। उदाहरण के लिए, मैं पहले से कुछ prefiltering कर रहा था ढूँढें कि क्वेरी कॉलम में नहीं कहा गया था, तो हम उम्मीद से अधिक परिणाम प्राप्त कर रहे थे। सौभाग्य से हमारे पास इस तरह की चीजों को पकड़ने के लिए कुछ परीक्षण किए गए थे, अन्यथा इससे हमें उत्पादन में सड़क पर चोट लगी होगी। –
सवाल मायटेबल :: मॉडल() -> findall() से वास्तविक डेटा प्राप्त करने के बारे में है; तो, जवाब irrelevent –
तो मैं तुम्हें सही ढंग से समझ:
$users = User::model()->findAll();
$usersArr = CHtml::listData($users, 'id' , 'name');
print_r($usersArr);
यह आप सरणी आईडी दे देंगे = > नाम
Array {
2 => 'someone',
20 => 'kitty',
102 => 'Marian',
// ...
}
हाँ, मैंने इसके बारे में सोचा, लेकिन क्या सिर्फ 'नाम' का उपयोग करने का कोई तरीका नहीं है? – Marian
यदि आप केवल नाम का उपयोग करना चाहते हैं तो कुंजी एक समस्या नहीं होनी चाहिए? यदि आप चाहें तो कुंजी को रीसेट करने के लिए आप array_values का उपयोग कर सकते हैं। –
नेह .. यह इस तरह काम नहीं करता .. – Marian
ActiveRecord वर्ग का प्रयोग करें एक विशेषता बुलाया जिम्मेदार बताते हैं। आप यहां अपना विवरण पा सकते हैं: http://www.yiiframework.com/doc/api/1.1/CActiveRecord#attributes-detail।
आदेश एक सरणी में सभी विशेषताओं पाने के लिए, इस का उपयोग करें: $var = $model->attributes;
तुम भी तरह
$countries = Country::model()->findAll();
array_values(CHtml::listData($countries, 'country_id', 'country_name'));
जो सभी देश के नाम की एक सरणी देता है, या
array_keys(CHtml::listData($countries, 'country_id', 'country_name'));
कुछ कर सकते हैं
जो सभी देश आईडी के एक सरणी देता है।
इस पर Chtml का उपयोग करें एक बदसूरत हैक है! लागू करें इस समाधान यह है कि मैंने पाया करने के लिए बेहतर तरीका है:
public function queryAll($condition = '', $params = array())
{
$criteria = $this->getCommandBuilder()->createCriteria($condition, $params);
$this->applyScopes($criteria);
$command = $this->getCommandBuilder()->createFindCommand($this->getTableSchema(), $criteria);
$results = $command->queryAll();
return $results;
}
आप एक ActiveRecord वर्ग के लिए इस कोड जोड़ सकते हैं, जैसे:
class ActiveRecord extends CActiveRecord {
//...
}
और, इस तरह का उपयोग करें:
return $model->queryAll($criteria);
आप this link में और अधिक पढ़ सकते हैं।
ध्यान दें कि [केवल-लिंक उत्तर] (http://meta.stackoverflow.com/tags/link-only-answers/info) निराश हैं, SO उत्तर समाधान के लिए खोज का अंत बिंदु होना चाहिए (बनाम। फिर भी संदर्भों का एक और स्टॉपओवर, जो समय के साथ पुराना हो जाता है)। लिंक को संदर्भ के रूप में रखते हुए, यहां स्टैंड-अलोन सारांश जोड़ना पर विचार करें। – kleopatra
कैसे के बारे में:
Yii::app()->db->createCommand()
->setFetchMode(PDO::FETCH_COLUMN,0)
->select("mycolumn")
->from(MyModel::model()->tableSchema->name)
->queryAll();
परिणाम होगा:
array('foo', 'bar', 'lala')
, उपयोग:
yii\helpers\ArrayHelper::map(MyModel::find()->all(), 'id', 'name'));
या
yii\helpers\ArrayHelper::getColumn(MyModel::find()->all(), 'name'));
यदि आप Yii1.1 का उपयोग कर रहे हैं और आपको एआर से सरणी के रूप में सभी डेटा प्राप्त करने की आवश्यकता है तो आपको इसकी देखभाल करने की आवश्यकता है। Yii1।1 ए आर बॉक्स से बाहर इस सुविधा नहीं है
Yii2 एआर में asArray() विधि है, यह बहुत उपयोगी है
मुझे आशा है कि मेरा उत्तर अपने नियंत्रक को शामिल करके मदद करता है किसी को
एक उदाहरण प्रदान करना थोड़ा बेहतर मदद कर सकता है। –
उपयोग Yii2 ArrayHelper इस एक मॉडल डेटा को एक संबंधित सरणी में परिवर्तित करेगा
use yii\helpers\ArrayHelper;
$post = ArrayHelper::toArray(ClientProfilesForm::findOne(['id' => 1]));
//or use it directly by
$post = yii\helpers\ArrayHelper::toArray(ClientProfilesForm::findOne(['id' => 1]));
foo, bar और lala क्या हैं? एक टेबल/मॉडल या विभिन्न मॉडल वस्तुओं के गुण? –
क्या आप यह पूछने की कोशिश कर रहे हैं कि आप सभी फ़ंक्शन खोजने के लिए स्थिति, पैरा आदि का उपयोग कैसे कर सकते हैं? – Arfeen
मूल्य। मैं एक टेबल से एक सरणी ओ मान प्राप्त करना चाहता हूँ। उदाहरण के लिए देशों की एक सारणी जिसमें देशों को शामिल किया गया है। – Marian