2016-11-11 22 views
0

こんにちは、私は月と年をカレンダーにループしようとしていますが、私のループはインデックス関数の最初の反復で停止します。Laravel 5.3ループエラー

INDEX関数:

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

} 

答えて

1

あなたは、ループ内のreturn文を持っているので、あなたは何をしていますrenderCalenderMonthに行き、生成されたビューを返しますか?ループから抜け出してください。ループから値を連続的に返す場合は、php yieldキーワードを使用してください。

+0

どこにジェネレータを渡す必要がありますか?ビューで? –

+0

私がやるべきことは、次のようなものです: – EpisodeInfinity

+1

何をするかは次のようなものです: '$ months = []; $ months [] = $ this-> renderCalenderMonth($ date); '今、あなたは何ヶ月かの配列を持っていますし、それを繰り返すことができ、毎月何をしたいのですか? – EpisodeInfinity