laravel,phpでカレンダーを作っております。
当月の表示はできましたが月めくりのリンクを作って実行すると404
エラーになります。リンク部分が間違えだと思うのですが、わかりません。
ルート
Route::get('calendar', 'dayController@calendar');
コントローラ
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class dayController extends Controller { public function calendar() { return view('calendar'); } }
ブレード
<?php use Carbon\Carbon; $m = isset($_GET['m'])? htmlspecialchars($_GET['m'], ENT_QUOTES, 'utf-8') : ''; $y = isset($_GET['y'])? htmlspecialchars($_GET['y'], ENT_QUOTES, 'utf-8') : ''; if($m!=''||$y!=''){ $dt = Carbon::createFromDate($y,$m,01); }else{ $dt = Carbon::createFromDate(); } renderCalendar($dt); function renderCalendar($dt) { $dt->startOfMonth(); //今月の最初の日 $dt->timezone = 'Asia/Tokyo'; //日本時刻で表示 //1ヶ月前 $sub = Carbon::createFromDate($dt->year,$dt->month,$dt->day); $subMonth = $sub->subMonth(); $subY = $subMonth->year; $subM = $subMonth->month; //1ヶ月後 $add = Carbon::createFromDate($dt->year,$dt->month,$dt->day); $addMonth = $add->addMonth(); $addY = $addMonth->year; $addM = $addMonth->month; //リンク $title = '<caption><a href="./calendar.php?y='.$subY.'&&m='.$subM.'"><<前月 </a>';//前月のリンク $title .= $dt->format('F Y');//月と年を表示 $title .= '<a href="./calendar.php?y='.$addY.'&&m='.$addM.'"> 来月>></a></caption>';//来月リンク //曜日の配列作成 $headings = ['月','火','水','木','金','土','日']; $calendar = '<table class="table" border=1>'; $calendar .= '<thead >'; foreach($headings as $heading){ $calendar .= '<th class="header">'.$heading.'</th>'; } $calendar .= '</thead>'; $calendar .= '<tbody><tr>'; //今月は何日まであるか $daysInMonth = $dt->daysInMonth; for ($i = 1; $i <= $daysInMonth; $i++) { if($i==1){ if ($dt->format('N')!= 1) { $calendar .= '<td colspan="'.($dt->format('N')-1).'"></td>'; //1日が月曜じゃない場合はcospanでその分あける } } if($dt->format('N') == 1){ $calendar .= '</tr><tr>'; //月曜日だったら改行 } $comp = new Carbon($dt->year."-".$dt->month."-".$dt->day); //ループで表示している日 $comp_now = Carbon::today(); //今日 //ループの日と今日を比較 if ($comp->eq($comp_now)) { //同じなので緑色の背景にする $calendar .= '<td class="day" style="background-color:#FFFF66;">'.$dt->day.'</td>'; }else{ switch ($dt->format('N')) { case 6: $calendar .= '<td class="day" style="background-color:#66CCFF" style="color:#00F">'.$dt->day.'</td>'; break; case 7: $calendar .= '<td class="day" style="background-color:#f08080">'.$dt->day.'</td>'; break; default: $calendar .= '<td class="day" >'.$dt->day.'</td>'; break; } } $dt->addDay(); } $calendar .= '</tr></tbody>'; $calendar .= '</table>'; echo $title.$calendar; }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。