通过href或按钮向php函数发送固定参数

通过href或按钮向php函数发送固定参数,php,laravel-4,Php,Laravel 4,我有一个日历,它是一个数组,我填充了日期,日期是键,报告是它们对应的值(是否完成取决于日期、星期或月份) 这包括3个方法MakeCalendar(),populatedswithreports(),和MakeFullCalendar() 我知道我需要我的href按钮,例如上个月和下个月,向我的MakeCalendar()和MakeFullCalendar()函数发送变量,例如上个月为-1,下个月为+1 这些是我的职责 public function MakeCalendar(/*$monthNu

我有一个日历,它是一个数组,我填充了日期,日期是键,报告是它们对应的值(是否完成取决于日期、星期或月份)

这包括3个方法
MakeCalendar()
populatedswithreports()
,和
MakeFullCalendar()

我知道我需要我的
href
按钮,例如上个月和下个月,向我的
MakeCalendar()
MakeFullCalendar()
函数发送变量,例如上个月为-1,下个月为+1

这些是我的职责

public function MakeCalendar(/*$monthNumber*/)
{
    // $month = $monthNumber;
    $month = date("m");
    $year = date("Y");

    $num = cal_days_in_month(CAL_GREGORIAN, $month, $year);
        $dates_month=array();
        for($i=1;$i<=$num;$i++)
        {
            $mktime=mktime(0,0,0,$month,$i,$year);
            $date=date("Y-m-d",$mktime);
            $dates_month[$i]=$date;
        }
        return $dates_month;
}

public function PopulateDatesWithReports($parkId = null)
{
    $completeCalendar = array();

    $calendar = $this->MakeCalendar();

    $reports = DB::table('ReportRecord')
        ->where('ParkId','=', $parkId)
        ->orderBy('DateCompleted', 'ASC')
        ->get();

    foreach ($calendar as $key => $date) 
    {
        foreach ($reports as $report) 
        {
            if ($report->DateCompleted == $date) 
            {
                $completeCalendar[$date][] = $report->ReportNameId;
            }
        }
    }

    return $completeCalendar;
}

public function MakeFullCalendar(/*$monthNumber,*/$parkId = null)
{
    $reportdates = $this->PopulateDatesWithReports($parkId);
    $reportcounter = 0;
    $weekreportcounter = 0;
    $monthreportcounter = 0;
    $weeklyreports = array();
    $monthlyreports = array();

    $month = date("m");
    $year = date("Y");

    $reports = DB::table('ReportRecord')
        ->where('ParkId','=', $parkId)
        ->orderBy('DateCompleted', 'ASC')
        ->get();

    $num = cal_days_in_month(CAL_GREGORIAN, $month, $year);
    $dates_month_with_reports=array();

    for($i=1;$i<=$num;$i++)
    {
            $mktime=mktime(0,0,0,$month,$i,$year);
            $date=date("Y-m-d",$mktime);
            $dates_month_with_reports[$date]=$date;
    }

    foreach ($dates_month_with_reports as $cal) 
    {
        foreach ($reportdates as $key => $rdate) 
        {
            if ($key == $cal) 
            {
                $dates_month_with_reports[$cal] = $rdate;
            }
         }
    }

    $daycounter = 0;

    foreach ($dates_month_with_reports as $key => $value) 
    {
        $daycounter++;

        if (! is_array($value)) 
        {
            $dates_month_with_reports[$key] = "No reports done today";
        }
        else {
            foreach ($value as $int => $val) 
            {

                if ($val == 1 || $val == 3 || $val == 4 || $val == 5) 
                {
                    $reportcounter++;

                    if ($reportcounter >= 4) 
                    {
                        $dates_month_with_reports[$key] = "Daily Reports are done";
                    }
                    else {
                        $dates_month_with_reports[$key] = "Daily Repoorts are missing";
                    }
                } 
                elseif ($val == 41 || $val == 10 || $val == 9 || $val == 8 || $val == 7 || $val == 6 || $val == 2) 
                {
                    $weeklyreports[$key][] = $val;
                }
                elseif($val == 42 || $val == 22 || $val == 21 || $val == 20 || $val == 18 || $val == 17 || $val == 16 || $val == 15 || $val == 14 || $val == 13 || $val == 12 ) 
                {
                    $monthlyreports[$key][] = $val;
                }
            }
        }

        if ($daycounter == 7||$daycounter == 14||$daycounter == 21||$daycounter == 28) 
        {
            foreach ($weeklyreports as $index => $val) 
            {
                foreach ($val as $va) 
                {
                    $weekreportcounter++;
                }
            }

            if ($weekreportcounter >= 7) 
            {
                $dates_month_with_reports[$key] = "Weekly Reports done";
            }
            else {

                $dates_month_with_reports[$key] = "Weekly Reports Not done they only achieved ".$weekreportcounter."/7";
            }

        }

        if ($daycounter == count($dates_month_with_reports)) 
        {
            foreach ($monthlyreports as $index => $val) 
            {
                foreach ($val as $va) 
                {
                    $monthreportcounter++;
                }
            }
            if ($monthreportcounter >= 11) 
            {
                $dates_month_with_reports[$key] = "Monthly Reports done";
            }
            else {

                $dates_month_with_reports[$key] = "Monthly Reports Not done they only achieved ".$monthreportcounter."/11";
            }
        }

    }

    return $dates_month_with_reports;
}
公共函数MakeCalendar(/*$monthNumber*/)
{
//$month=$monthNumber;
$month=日期(“m”);
$year=日期(“Y”);
$num=每月的计算天数(计算公历,$month,$year);
$dates_month=array();
对于($i=1;$iMakeCalendar();
$reports=DB::table('ReportRecord')
->其中('ParkId','=',$ParkId)
->订购人('DateCompleted','ASC')
->get();
foreach($key=>$date的日历)
{
foreach($reports作为$report报告)
{
如果($report->DateCompleted==$date)
{
$completeCalendar[$date][=$report->ReportNameId;
}
}
}
返回$completeCalendar;
}
公共函数MakeFullCalendar(/*$monthNumber,*/$parkId=null)
{
$reportdates=$this->PopulateDatesWithReports($parkId);
$reportcounter=0;
$weekreportcounter=0;
$monthreportcounter=0;
$weeklyreports=array();
$monthlyreports=array();
$month=日期(“m”);
$year=日期(“Y”);
$reports=DB::table('ReportRecord')
->其中('ParkId','=',$ParkId)
->订购人('DateCompleted','ASC')
->get();
$num=每月的计算天数(计算公历,$month,$year);
$dates\u month\u,其中报告=array();
对于($i=1;$i$rdate)
{
如果($key==$cal)
{
$dates\u month\u和报告[$cal]=$rdate;
}
}
}
$daycounter=0;
foreach($dates\u month,\u报告为$key=>$value)
{
$daycounter++;
如果(!是_数组($value))
{
$dates\u month\u带有报告[$key]=“今天没有完成报告”;
}
否则{
foreach($int=>$val的值)
{
如果($val==1 | |$val==3 | |$val==4 | |$val==5)
{
$reportcounter++;
如果($reportcounter>=4)
{
$dates\u month\u与报告[$key]=“每日报告完成”;
}
否则{
$dates\u month\u和报告[$key]=“缺少每日报告”;
}
} 
elseif($val==41 | |$val==10 | | |$val==9 | |$val==8 | |$val==7 | |$val==6 | |$val==2)
{
$weeklyreports[$key][]=$val;
}
elseif($val==42 | |$val==22 | |$val==21 | |$val==20 | |$val==18 | |$val==17 | |$val==16 | |$val==15 | |$val==14 | | |$val==13 | |$val==12)
{
$monthlyreports[$key][]=$val;
}
}
}
如果($daycounter==7 | |$daycounter==14 | |$daycounter==21 | |$daycounter==28)
{
foreach($weekly报告为$index=>$val)
{
外汇($val作为$va)
{
$weekreportcounter++;
}
}
如果($weekreportcounter>=7)
{
$dates\u month\u与报告[$key]=“每周完成报告”;
}
否则{
$dates\u month\u带报告[$key]=“周报告未完成,仅完成”$weekreportcounter./7”;
}
}
如果($daycounter==计数($dates\u month\u和报告))
{
foreach($monthlyreports as$index=>$val)
{
外汇($val作为$va)
{
$monthreportcounter++;
}
}
如果($monthreportcounter>=11)
{
$dates\u month\u带报告[$key]=“完成月度报告”;
}
否则{
$dates\u month\u with_reports[$key]=“月度报告未完成,他们只完成了”$monthreportcounter./11”;
}
}
}
返回$dates\u month\u和报告;
}
我使用的是laravel 4,我知道我需要使用
href
输入向
MakeCalendar()
MakeFullCalnedar()
发送参数,以增加一个月


所以我的问题是,我可以用什么方法将数据发送到不涉及使用路由的函数,或者这是唯一的方法?

您可以从PopulateDatesWithReports函数中调用MakeCalendar函数,将$monthNumber作为如下参数发送

$this->MakeCalendar($monthNumber);
只要将$monthNumber参数发送到PopulateDatesWithReports函数,就可以在任何时候执行此操作

所以你的href应该是

http://www.example.com/calender/MakeFullCalendar/1/99