结束了一个对象,我怎么这个工作吗? [英] Ended up with an Object, how do I work with this?

查看:125
本文介绍了结束了一个对象,我怎么这个工作吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在<一个解决我的问题的一部分后, href=\"http://stackoverflow.com/questions/10092771/mvc-fundamentals-passing-work-along-to-the-view\">here,我意识到,我可以获取数据到视图,但后来我有另外一个问题。

(控制器)

  $这个 - &GT;负载&GT;模型('测试/ test_v_to_m_model');
$数据['MYDATA'] = $这个 - &GT; test_v_to_m_model-&GT; display_character_info();
$这个 - &GT;负载&gt;查看('测试/ test_v_to_m_view',$数据);

(模型)

  $查询= $这个 - &GT; doctrine-&GT;的EM&GT;的createQuery(从ORM \\ Dynasties2 \\字符U选择U);
返回$查询 - &GT;的getResult();

(视图)

 的foreach($ MYDATA为$关键=&GT; $行){
   的print_r($行);
}

这将返回输出像这样:


  

ORM \\ Dynasties2 \\字符对象([ID:ORM \\ Dynasties2 \\特点:私人] => 76名:ORM \\ Dynasties2 \\特点:私人] => Gwayn [whichFamily:ORM \\ Dynasties2 \\特点:私人] = > 12 [bornDate:ORM \\ Dynasties2 \\特点:私人] => -467 [deathDate:ORM \\ Dynasties2 \\特点:私人] => -6 [marriedTo:ORM \\ Dynasties2 \\特点:私人] => 77 marriedDate:ORM \\ Dynasties2 \\特点:私人] => -304 [婚姻code:ORM \\ Dynasties2 \\特点:私人] => [宗教:ORM \\ Dynasties2 \\特点:私人] => 0 isFemale:ORM \\ Dynasties2 \\字符:私人] => 0 betrothedTo:ORM \\ Dynasties2 \\特点:私人] => [fathersId:ORM \\ Dynasties2 \\特点:私人] => 0 successionOrder:ORM \\ Dynasties2 \\特点:私人] => 0为pregnant:ORM \\ Dynasties2 \\特点:私人] => [pregnantTurnsLeft:ORM \\ Dynasties2 \\特点:私人] => [marriedOutOfFamily:ORM \\ Dynasties2 \\特点:私人] => [bornMatrilineal:ORM \\ Dynasties2 \\性状:私人] =>)


所以...我只是不知道如何与这个 - 做任何事情,我想一个嵌套的foreach呼应数据并不能得到它的工作。我期望它,因为这是一个的对象的,不是的阵列的,是正确的?


  1. 我究竟如何访问/操纵这些领域?


  2. 有不同的code,我可以在我的Doctrine2 / codeIgniter2模型中使用,这将使数据更容易字段名称 - 像相当于SQL作为



解决方案

您应该能够指针访问对象,像这样:

 的foreach($ MYDATA为$关键=&GT; $行){
   回波($行向和SEQ ID);
   回波($行向&GT;名);
}

stdClass的是PHP的通用空类。下面是使用提供了很好的教程: http://krisjordan.com/dynamic-属性 - 在PHP与 - stdClass的

编辑:

尝试使用访问:

 回声($行向&GT;的getId());

After solving part of my problem over here, I realized that I could get the data into the view, but then I had another problem.

(controller)

$this->load->model('testing/test_v_to_m_model');
$data['mydata'] = $this->test_v_to_m_model->display_character_info();
$this->load->view('testing/test_v_to_m_view', $data);

(model)

$query = $this->doctrine->em->createQuery("select u from ORM\Dynasties2\Characters u");
return $query->getResult();

(view)

foreach ($mydata as $key => $row) {
   print_r($row);
}

This returns output like so:

ORM\Dynasties2\Characters Object ( [id:ORM\Dynasties2\Characters:private] => 76 [name:ORM\Dynasties2\Characters:private] => Gwayn [whichFamily:ORM\Dynasties2\Characters:private] => 12 [bornDate:ORM\Dynasties2\Characters:private] => -467 [deathDate:ORM\Dynasties2\Characters:private] => -6 [marriedTo:ORM\Dynasties2\Characters:private] => 77 [marriedDate:ORM\Dynasties2\Characters:private] => -304 [marriageCode:ORM\Dynasties2\Characters:private] => [religion:ORM\Dynasties2\Characters:private] => 0 [isFemale:ORM\Dynasties2\Characters:private] => 0 [betrothedTo:ORM\Dynasties2\Characters:private] => [fathersId:ORM\Dynasties2\Characters:private] => 0 [successionOrder:ORM\Dynasties2\Characters:private] => 0 [isPregnant:ORM\Dynasties2\Characters:private] => [pregnantTurnsLeft:ORM\Dynasties2\Characters:private] => [marriedOutOfFamily:ORM\Dynasties2\Characters:private] => [bornMatrilineal:ORM\Dynasties2\Characters:private] => )

And so... I just don't know how to do anything with this- I tried a nested foreach to echo data and couldn't get it to work. I expect that its because this is an Object, not an Array, is that correct?

  1. How exactly can I access/manipulate these fields?

  2. Is there different code that I can use in my Doctrine2/CodeIgniter2 model that will give the data easier field names - like the equivalent to sql AS?

解决方案

You should be able to access the object with pointers, like so:

foreach ($mydata as $key => $row) {
   echo($row->id);
   echo($row->name);
}

stdClass is php's generic empty class. Here is a nice tutorial on using this: http://krisjordan.com/dynamic-properties-in-php-with-stdclass

Edit:

Try using an accessor:

echo($row->getId());

这篇关于结束了一个对象,我怎么这个工作吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆