2015-12-22 3 views
2

Интересно, кто-то уже понял мою проблему. Я использую Laravel 5 Full Calendar Helper, чтобы создать приложение для бронирования. То, что я хочу достичь, - это сделать календарь в определенный день, который является датой бронирования. Например, если кто-то хочет забронировать номер на 12/31/2015, он сможет увидеть календарь на эту дату (день), прежде чем записаться в комнату.Открыть конкретный день с помощью пакета FullCalendar

До сих пор я получил эту

ConsultController

<?php 

namespace App\Http\Controllers; 

use App\Booking; 
use App\Http\Requests\BookingRequest; 
use App\Room; 
use Illuminate\Http\Request; 

use App\Http\Requests; 
use App\Http\Controllers\Controller; 
use Illuminate\Support\Facades\DB; 
use Illuminate\Support\Facades\Session; 


class ConsultController extends Controller 
{ 
    public function consult(BookingRequest $request){ 

     // Look for the booking which matches with our search 
     $seek = Booking::where('room_id','=',$request->room) 
          ->where('day','=',$request->day) 
          ->where('start','=',$request->start)->first(); 



     // If no booking matches, then book 
     if(is_null($seek)){ 
      $book = $request; 
      // Get all the bookings on day requested 
      $bookings = Booking::where('day','=',$request->day)->get(); 
      // creating events for the calendar 
      $events = []; 
      foreach($bookings as $booking){ 
       $events[] = \Calendar::event(
        ''.$booking->room->name, //event title 
        false, //full day event? 
        $booking->day->format('Y-m-d').$booking->start, //start time (you can also use Carbon instead of DateTime) 
        $booking->day->format('Y-m-d').$booking->end, //end time (you can also use Carbon instead of DateTime) 
        $booking->id //optionally, you can specify an event ID 
       ); 
      } 
      $events [] = \Calendar::event(
       ''.Room::find($book->room)->name, //event title 
       false, 
       $book->day.$book->start, 
       $book->day.$book->end, 
       0, 
       [ 
        'backgroundColor' => '#ff5722' 
       ] 
      ); 
      // Adding event for the calendar 
      $calendar = \Calendar::addEvents($events); 
      return view('consult.book')->with(['calendar' => $calendar,'book'=>$book]); 
     } 
     // If a record matches then redirect back 
     else{ 
      Session::flash('flash_message','Lo sentimos ese horario está ocupado'); 
      return redirect()->back(); 
     } 

    } 
} 

У меня есть этот вид

enter image description here

но то, что я хочу этот взгляд

enter image description here

ответ

2

Принимая подробный обзор к документации, которую я узнал, что этот вспомогательный класс имеет метод setOptions, который позволяет иметь больший контроль при визуализации календаря

Я просто добавил этот метод и достиг того, что я искал

$calendar = \Calendar::addEvents($events)->setOptions([ 'defaultDate' => $book->day,'defaultView' => 'agendaDay']); 
Смежные вопросы