2011-12-26 50 views
0

拉出数据我正在使用FulePHP和MongoDB,我对他们都是新手。出于某种原因,我无法在集合中拉出多个MongoDB数据对象。当我尝试提取数据时,我只收到一件“人物”,在收藏“人员”中有两件“人物”。我试图理解为什么。当我在模型中做var_dump()时,我看到两个项目出现。当我从控件执行print_r()时,我看到只有一个项目(第一个)出现。当我在模型中做了sizeof($ personnel)时,我看到了'1',这是有道理的,因为我只有一个对象。所以我假设我的foreach循环不在模型中工作,只做一次迭代。我花了最后两天的时间试图弄清楚为什么会发生这种情况,并且我花了很多时间处理foreach循环,以至于我不能理解它们,这就是我来到这里的原因。 这里是我的模型:如何从mongodb(对象)与fuelphp(php)

class Model_Home extends Model { 

static function get_results(){ 

    $mongodb = Mongo_Db::instance(); 
    $personnel = $mongodb->get('personnel'); 

    var_dump($personnel); 

    foreach($personnel as $key => $val){ 
     return $val; 
    } 
    } 
} 

这里是我的控制器:

class Controller_Home extends Controller { 


public function action_index() 
{ 
    $data['css'] = Asset::css(array('reset.css','main.css')); 

    $results = Model_Home::get_results(); 


    print_r($results); 

    foreach ($results as $key => $val){ 
     $data[$key] = $results[$key]; 
    } 

    $this->response->body = View::factory('home/index', $data); 
} 
} 

不介意CSS的一部分,它只是拉在CSS。 这里是我的var_dump从模型中:

object(stdClass)#10 (2) { 
     [0]=> 
     array(5) { 
     ["_id"]=> 
     object(MongoId)#13 (1) { 
      ["$id"]=> 
      string(24) "4ef82a27b238f02ed9000000" 
     } 
     ["cms"]=> 
     array(1) { 
      [0]=> 
      string(8) "Druapl_1" 
     } 
     ["first_name"]=> 
     string(6) "Name_1" 
     ["last_name"]=> 
     string(10) "Lst_Name_1" 
     ["skills"]=> 
     array(3) { 
      [0]=> 
      string(6) "html_1" 
      [1]=> 
      string(5) "css_1" 
      [2]=> 
      string(8) "jQuery_1" 
     } 
     } 
     [1]=> 
     array(5) { 
     ["_id"]=> 
     object(MongoId)#14 (1) { 
      ["$id"]=> 
      string(24) "4ef81a0dcf163c7da3e5c964" 
     } 
     ["cms"]=> 
     array(1) { 
      [0]=> 
      string(8) "Druapl_2" 
     } 
     ["first_name"]=> 
     string(6) "Name_2" 
     ["last_name"]=> 
     string(10) "Lst_Name_2" 
     ["skills"]=> 
     array(3) { 
      [0]=> 
      string(6) "html_2" 
      [1]=> 
      string(5) "css_2" 
      [2]=> 
      string(8) "jQuery_2" 
     } 
     } 
    } 

这里是我的print_r()从控制器:

 Array 
    (
     [_id] => MongoId Object 
      (
       [$id] => 4ef82a27b238f02ed9000000 
      ) 

     [cms] => Array 
      (
       [0] => Druapl_1 
      ) 

     [first_name] => Name_1 
     [last_name] => Lst_Name_1 
     [skills] => Array 
      (
       [0] => html_1 
       [1] => css_1 
       [2] => jQuery_1 
      ) 

    ) 

我不认为我需要的观点也是如此,因为数据被前丢失它看起来像控制器。 但让我知道如果我确实需要这个观点。请帮忙。我根本不知道还能做什么......谢谢。

+0

对不起,我的问题太久了。我只是想彻底,我只是想最终回答这个问题。 – user000001 2011-12-26 22:07:17

回答

2

你是否也是PHP新手?

foreach($personnel as $key => $val){ 
    return $val; 
} 

这只返回第一项。只需要return $personnel;

+0

在你所有的人中,你永远都不会期望从框架本身的人那里获得帮助。是的,昨天我得到了同样的结论,即返回$人员而不是$ val。但是现在我有一个不同的问题,我不能把数据放到视图中。我会发布一个新问题,它有点类似。如果你能再次帮助,我将不胜感激。 – user000001 2011-12-27 16:29:03