Yii Framework Forum: Выборка - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Выборка Rate Topic: -----

#1 User is offline   melomaniac 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 174
  • Joined: 14-January 13

Posted 08 November 2013 - 12:22 AM

Всем доброе утро, есть такой запрос:

$data=Menu::model()->findAll(array(
			    'select'=>'id, name'
			));
			var_dump($data);


Возвращает:
array(3) {
  [0]=>
  object(Menu)#49 (11) {
    ["_new":"CActiveRecord":private]=>
    bool(false)
    ["_attributes":"CActiveRecord":private]=>
    array(2) {
      ["id"]=>
      string(1) "0"
      ["name"]=>
      string(9) "menu17dfg"
    }


Если по другому:
$menu="SELECT `id`, `name` FROM `menus`";
	        $data=Yii::app()->db->createCommand($menu)->queryAll();


Тогда:
array(3) {
  [0]=>
  array(2) {
    ["id"]=>
    string(1) "0"
    ["name"]=>
    string(5) "menu1"
  }
  [1]=>
  array(2) {
    ["id"]=>
    string(1) "1"
    ["name"]=>
    string(5) "menu2"
  }
  [2]=>
  array(2) {
    ["id"]=>
    string(1) "2"
    ["name"]=>
    string(5) "menu3"
  }
}



Единственно что не нравится мне во втором запросе, так это:
$menu="SELECT `id`, `name` FROM `menus`";

Некрасиво как-то, подскажите пожалуйста как переписать по типу
$model = Menu::model()->findAll();

Только мне нужно выбрать все строки id и name, без "мусора" вроде
object(Menu)#49 (11) {
    ["_new":"CActiveRecord":private]=>
    bool(false)
    ["_attributes":"CActiveRecord":private]=>


:)
0

#2 User is offline   andy_s 

  • Random Member Title
  • Yii
  • Group: Moderators
  • Posts: 1,526
  • Joined: 22-June 09
  • Location:Russia, Kostroma

Posted 08 November 2013 - 02:24 AM

В класс Menu можно добавить метод:

public function findAllRaw()
{
    $criteria = new CDbCriteria;
    $criteria->select = 'id, name';
    return $this->getCommandBuilder()->createFindCommand($this->tableName(), $criteria)->queryAll();
}

1

#3 User is offline   melomaniac 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 174
  • Joined: 14-January 13

Posted 08 November 2013 - 02:26 AM

View Postandy_s, on 08 November 2013 - 02:24 AM, said:

В класс Menu можно добавить метод:

public function findAllRaw()
{
    $criteria = new CDbCriteria;
    $criteria->select = 'id, name';
    return $this->getCommandBuilder()->createFindCommand($this->tableName(), $criteria)->queryAll();
}



Спасибо :)
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users