Я пытаюсь создать блэйд-вид, в котором у меня есть выпадающий список, в котором есть все Subject
из базы данных и средство выбора даты, где я могу выбрать дату начала и дату окончания. Используя выборки, которые я выбрал в выпадающем меню выбора и выбора даты, я хотел бы отфильтровать данные моей таблицы Attendance
и отобразить ее в виде таблицы PDF. Итак, я могу извлечь ВСЕ данные и отобразить их в формате PDF. Как я могу создать эту функцию фильтра? Я все еще новичок в Laravel, так что извините, что задаю такой вопрос.
Это то, что я сделал до сих пор.
GenerateReportController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Attendance;
use PDF;
class GenerateReportController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$subjects = Subject::all(['id','s_name']);
//$attendance = Attendance::all();
return View::make('generate', compact('subjects',$subjects));
}
public function downloadPDF()
{
$report = Attendance::all();
$pdf = PDF::loadView('pdf',compact('report'));
$name = "Attendance Report";
return $pdf->stream($name.'.pdf');
}
}
pdf.blade.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Attendance Report</title>
</head>
<body>
<h1>Attendance Report</h1>
<p>Generated by {{Auth::user()->name}}</p>
<p>Date Generated : {{ date('Y-m-d') }}</p>
<p>Time Generated : {{ date('h:i:s a')}}</p>
<table cellpadding="10">
<thead>
<tr>
<th>Student Name</th>
<th>Subject</th>
<th>Date</th>
<th>Time</th>
<th>Status</th>
</tr>
</thead>
<tbody>
@foreach($report as $repo)
<tr>
<td>{{$repo->student->stud_name}}</td>
<td>{{$repo->subject->s_name}}</td>
<td>{{$repo->date}}</td>
<td>{{$repo->time}}</td>
<td>{{$repo->att_status}}</td>
</tr>
@endforeach
</tbody>
</table>
</body>
</html>
ОБНОВЛЕНО
generate.blade.php
Форма - это помогает отфильтровать данные на основе выбранной темы, после чего я сгенерирую PDF-файл с результатами из моей таблицы attendance
на основе имени субъекта s_name
при нажатии на кнопку «Создать отчет». Как я могу это сделать?
@extends('master')
@section('page_header')
<div class="container-fluid">
<h1 class="page-title">Attendance Records</h1>
<a href="/dashboard/attendance/report/" target="_blank" class="btn btn-primary">
<i class="voyager-list" style="font-size:15px;"></i>
<span>Generate Report</span>
</a>
</div>
@endsection
@section('content')
<div class="form-group">
{!!Form::Label('subject', 'Subject:')!!}
<select class="form-control" name="s_name">
@foreach($subjects as $subject)
<option value="{{$subject->s_name}}">{{$subject->s_name}}</option>
@endforeach
</select>
<br>
{!! Form::Label('startDate', 'Start Date:') !!}<br>
{!! Form::input('date', 'startDate', null, ['class' => 'datepicker', 'data-date-format' => 'dd/mm/yy']) !!}
<br>
<br>
{!! Form::Label('endDate', 'End Date:') !!}<br>
{!! Form::input('date', 'endDate', null, ['class' => 'datepicker', 'data-date-format' => 'dd/mm/yy']) !!}
</div>
@endsection
<script type="text/javascript">
$('.date').datepicker({
format: 'mm-dd-yyyy',
orientation: 'bottom'
});
</script>
web.php
Route::get('dashboard/attendance/generate','GenerateReportController@index');
Route::get('dashboard/attendance/report','GenerateReportController@downloadPDF');