Laravel 5.3循环错误

问题描述:

嗨我试图循环日历月和年,但我的循环停止在索引函数的第一次迭代你能帮我吗?Laravel 5.3循环错误

功能指数:

public function index() 
{ 
$users = DB::table('users')->where('roles_id', '2')->get(); 

    date_default_timezone_set("Asia/Hong_Kong"); 

    for ($iterateYear = 2017; $iterateYear < 2018; $iterateYear++) { 
    for ($iterateMonth = 1; $iterateMonth <= 12; $iterateMonth++) { 

     /* Set the date */ 
     $date = strtotime(sprintf('%s-%s-01', $iterateYear, $iterateMonth)); 
     return $this->renderCalenderMonth($date); 

    } 
    } 

    return view('transaction.index', [ 
     'users' => $users 
    ]); 
} 

RenderCalendarMonth功能:

公共职能renderCalenderMonth($日期){

// $date = strtotime(date("Y-m-d")); 
    $NUMBER_OF_COLUMNS = 37; 

    $day = date('d', $date); 
    $month = date('m', $date); 
    $year = date('Y', $date); 

    $firstDay = mktime(0,0,0,$month, 1, $year); 
    $title = strftime('%B', $firstDay); 
    $dayOfWeek = date('D', $firstDay); 
    $daysInMonth = cal_days_in_month(0, $month, $year); 
    /* Get the name of the week days */ 
    $timestamp = strtotime('next Sunday'); 
    $weekDays = []; 

    for($i = 0; $i < $NUMBER_OF_COLUMNS; $i++) { 
     $weekDays[] = strftime('%a', $timestamp); 
     $timestamp = strtotime('+1 day', $timestamp); 
    } 
    $blank = date('w', strtotime("{$year}-{$month}-01")); 

    $divid = $title.$year; 

    return view('transaction.index', [ 
    'date' => $date, 
    'day' => $day, 
    'month' => $month, 
    'year' => $year, 
    'firstDay' => $firstDay, 
    'title' => $title, 
    'dayOfWeek' => $dayOfWeek, 
    'daysInMonth' => $daysInMonth, 
    'timestamp' => $timestamp, 
    'weekDays' => $weekDays, 
    'blank' => $blank, 
    'divid' => $divid, 
    'NUMBER_OF_COLUMNS' => $NUMBER_OF_COLUMNS 
    ]); 

} 

您的循环return语句,所以你在做什么你是否正在进入renderCalenderMonth,然后返回生成的视图。然后离开循环。如果要从循环中不断返回值,请使用php yield关键字。

+0

我应该在哪里通过发生器?在意见? –

+0

我会做的是这样的: – EpisodeInfinity

+1

会做什么是这样的:'$ months = []; $ months [] = $ this-> renderCalenderMonth($ date); '现在你有几个月的时间,那么你可以迭代它,并且每个月都可以做你想做的事。 – EpisodeInfinity