在对象Laravel 4中循环使用方法

时间:2014-05-11 16:01:26

标签: php laravel-4

我正在尝试遍历我为对象中的日期创建的方法。但是,它只是循环第一个结果,我不知道如何让它循环遍历每个结果并相应地应用。

日期方法

public function getDate($date) {
    $date = preg_replace('/,/', '', $date);

    $newDate = strtotime($date);

    $dateFormat = date('l: F d, Y',$newDate);   

    return $dateFormat;
}

控制器调用模型

    public function showDashboard() {

        $pages = Pages::orderBy('created_at', 'DESC')->get();

//      foreach($pages as $page) {
//          $date = $this->getDate($page->created_at);
//      }


        //var_dump($date); die;

        return View::make('dashboard.index', ['pageTitle' => 'Dashboard','pages' => $pages]);
    }

dumping $ date只返回一个看起来像数据库表中最后一个日期的结果。如果我把转储放在循环中我只得到第一个结果。

我尝试将该方法直接应用于Blade模板$this->getDate($page->created_at);,但返回错误,指出它不是已定义的方法。刀片模板只是一个简单的foreach循环,可以显示每条记录。我想要完成的是foreach其中一个created_at记录,我希望将getDate方法应用于它。

1 个答案:

答案 0 :(得分:0)

你没有将$ date设置为一个数组 - 每次都在写自己...

public function showDashboard() {

    $pages = Pages::orderBy('created_at', 'DESC')->get();

    $date = array();

    foreach($pages as $page) {
        $date[] = $this->getDate($page->created_at);
    }


   var_dump($date); die;

    return View::make('dashboard.index', ['pageTitle' => 'Dashboard','pages' => $pages]);
}