【问题标题】:Looping through method within an object Laravel 4在对象 Laravel 4 中循环遍历方法
【发布时间】:2014-05-11 16:01:25
【问题描述】:

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

日期法

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]);
    }

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

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

【问题讨论】:

    标签: php laravel-4


    【解决方案1】:

    您还没有将 $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]);
    }
    

    【讨论】:

    • 好的,我做到了,但是现在当我已经有一个带有 $pages 的 foreach 循环时,我将如何循环该 $date?每次我都会得到一个数组到字符串的转换失败
    猜你喜欢
    • 1970-01-01
    • 2020-06-09
    • 2020-02-20
    • 1970-01-01
    • 2020-04-30
    • 2017-06-12
    • 2015-10-31
    • 2014-11-30
    • 1970-01-01
    相关资源
    最近更新 更多