Как получить значение массива? - PullRequest
0 голосов
/ 12 мая 2011

Я тестирую модели в Zend Project, у меня есть вопрос о том, как получить значение массива, я обнаружил, что это невозможно сделать с помощью $array[index];

это метод поиска, который я тестирую:

   static function find($name, $order=null, $limit=null, $offset=null) {
        return self::_selectAndBind(
                get_class(),
                        self::getDefaultAdapter()
                        ->select()
                        ->from('user')
                        ->where('name = ?', array($name))
                        ->order($order)
                        ->limit($limit, $offset)
        );
    }

это тест для find ():

public function testUser2CanFind() {
        $this->assertNotNull($this->_model->find('yes'));

        $this->assertEquals(1, count($this->_model->find('yes')));

        print_r($this->_model->find('yes'));
        //$this->assertEquals('admin',$this->_model->find('yes')[0]->login);
    }

Я хочу получить значение логина, поэтому мы мне print_r($this->_model->find('yes')); это дадим:

......Array
(
    [0] => Application_Model_User2 Object
        (
            [_table:protected] => user
            [_primary:protected] => Array
                (
                    [0] => id
                )

            [_primary_ai:protected] => id
            [_data:protected] => Array
                (
                    [id] => 1
                    [created] => 2011-05-03 09:41:2
                    [login] => admin
                    [password_hash] => c8ebe700df11
                    [name] => yes
                    [surname] =>
                    [gender] =>
                    [street] =>
                    [postal_code] =>
                    [city] =>
                    [mobile] =>
                    [homephone] =>
                    [email] =>
                    [is_active] => 1
                )

            [_data_changed:protected] => Array
                (
                )

            [_readonly:protected] => Array
                (
                    [0] => id
                )

            [_db:protected] =>
        )

)

как я могу получить значение [login] => admin? Я пытался использовать $this->_model->find('yes')[0], но выдает ошибку, может кто-нибудь помочь?

1 Ответ

1 голос
/ 12 мая 2011
$entity = current($this->_model->find('yes'));
echo $entity->login;

Обновление:

Если в этом списке более одного элемента, используйте обычную итерацию

foreach($this->_model->find('yes') as $entity) 
  echo $entity->login;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...