tetero
@tetero (tetero)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

laravelで作っているカレンダーの各日付をaタグにしたい

やりたいこと

カレンダーの各日付をaタグにしたい

発生している問題

> else {
> $this->html .= "<td>" . $day . "</td>"; 
 }

↓上のコードに"".を足した。

> else {
> $this->html .= "<td>" ."<a href={{ url('/holiday') }}>". $day . "</td>"; 
 }

urlが/holidayに飛ばずに下記のようになり404 NOT FOUNDになった。

http://127.0.0.1:8000/%7B%7B


"<td>" ."<a href=”{{ url('/holiday') }}">".  $day ."&nbsp"; 

↑のようにhref=の後に""をつけるとエラーになる↓

syntax error, unexpected '"'

参考サイト

Laravel基礎(5)Webアプリ開発の実践

参考サイトのコード

namespace App;
class Calendar
{
    private $html;    
    public function showCalendarTag($m, $y)
    {
        $year = $y;
        $month = $m;
        if ($year == null) {
            // システム日付を取得する。 
            $year = date("Y");
            $month = date("m");
        }
        $firstWeekDay = date("w", mktime(0, 0, 0, $month, 1, $year)); // 1日の曜日(0:日曜日、6:土曜日)
        $lastDay = date("t", mktime(0, 0, 0, $month, 1, $year)); // 指定した月の最終日
        // 日曜日からカレンダーを表示するため前月の余った日付をループの初期値にする
        $day = 1 - $firstWeekDay;
        $this->html = <<< EOS
<h1>{$year}{$month}</h1>
<table class="table table-bordered">
<tr>
  <th scope="col"></th>
  <th scope="col"></th>
  <th scope="col"></th>
  <th scope="col"></th>
  <th scope="col"></th>
  <th scope="col"></th>
  <th scope="col"></th>
</tr>
EOS;
        // カレンダーの日付部分を生成する
        while ($day <= $lastDay) {
            $this->html .= "<tr>";
            // 各週を描画するHTMLソースを生成する
            for ($i = 0; $i < 7; $i++) {
                if ($day <= 0 || $day > $lastDay) {
                    // 先月・来月の日付の場合
                    $this->html .= "<td>&nbsp;</td>";
                } else {
                   $this->html .= "<td>" . $day . "</td>"; 
                }
               $day++;
            }

            $this->html .= "</tr>";
        }

        return $this->html .= '</table>';
    }
}

分かりづらいとは思いますが、
よろしくお願い致します!

0

2Answer

> $this->html .= "<td>" ."<a href=\"" . url('/holiday') . "\">". $day . "</td>"; 

これはただの関数なので,View での変換は行わなそうなので,
url 関数を自分で読んであげないといけなそうです.

それと,"(ダブルクォート) を " 内で使おうとしているので,
エスケープしないといけないような気がします.

0Like

Your answer might help someone💌