Laravel 5.4日历获取dateBase的开始和结束事件



你好,我在将列'开始'和'end'事件中遇到了一些问题。我使循环及其工作,标题,日期在日历上显示,但时间不起作用。所有事件都是在Allday事件上设置的,但我设置了Allday False。我制作了创建表单和工作良好的事件制作并发送到数据库。但这表现确实很匿名。我尝试修复它,但我不知道我在哪里犯了错误。

控制器:

<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppHomeModel;
use MaddHatterLaravelFullcalendarEvent;
use IlluminateSupportFacadesDB;
use DateTime;
class HomeController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }
    
    /**
     * Show the application dashboard.
     *
     * @return IlluminateHttpResponse
     */
    public function index(){
                      
    $event = HomeModel::all();
    foreach ($event as $eve) {
      $events[] = Calendar::event(
      $eve->title, //event title
      $eve->name,
      $eve->start, //start time (you can also use Carbon instead of DateTime)
      $eve->end, //end time (you can also use Carbon instead of DateTime)
      $eve->id //optionally, you can specify an event ID
      );
      //die($event);
    }
    $calendar = Calendar::addEvents($events)
            ->setOptions([
                'FirstDay' => 1,
                'contentheight' => 650,
                'editable' => false,
                'allDay' => false,
                'aspectRatio' => 2,
                'slotLabelFormat' => 'HH:mm:ss',
                ])->setCallbacks([]);
            return view('home', compact('calendar'));
    }
    /**
     * Show the form for creating a new resource.
     *
     * @return IlluminateHttpResponse
     */
    
            public function create()
        {
          return view('create');
        }
        /**
     * Store a newly created resource in storage.
     *
     * @param  IlluminateHttpRequest  $request
     * @return IlluminateHttpResponse
     */
    public function store(Request $request)
    {   
           
       
        $time = explode(" - ", $request->input('daterange'));
        $event                  = new HomeModel;
        $event->name            = $request->input('name');
        $event->title           = $request->input('title');
        $event->start      = $time[0];
        $event->end        = $time[1];
        $event->save();
        
        $request->session()->flash('success', 'The event was successfully saved!');
        return redirect('home/create');
        
    }
}
型号:

<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class HomeModel extends Model
{
    protected $table = 'events'; // you may change this to your name table
	public $timestamps = true; // set true if you are using created_at and updated_at
	protected $primaryKey = 'id'; // the default is id
    
    
  
}

查看:

@extends('layouts.app')
@section('content')
@endsection
@section('calendar')
<div class="panel panel-default" >
	<div class="panel-body">
	<a class="btn btn-default" href="{{ url('/home/create') }}">Create</a>
	<a class="btn btn-default" href="{{ url('/home/edit') }}">Edit</a>
	<a class="btn btn-default" href="{{ url('/home/delete') }}">Delete</a>
	</div>
	</div>
		<div class="panel-body">
							
							    {!! $calendar->calendar() !!}
							    {!! $calendar->script() !!}
 
									
		</div>						
</div>
				
@endsection

屏幕外观

在日期和时间的情况下..您可能想经过碳。

http://carbon.nesbot.com/docs/

它将帮助您以一种轻松的方式获得时间和日期,这将帮助您摆脱您正在做的所有笨拙的日期。

在您的情况下:

foreach ($event as $eve) {
 $start_timestamp = Carbon::createFromFormat('d-m-Y h:i:s', $eve->start);
 $end_timestamp = Carbon::createFromFormat('d-m-Y h:i:s', $eve->end);
  $events[] = Calendar::event(
  $eve->title, //event title
  $eve->name,
  $start_timestamp->toTimeString(), //start time (you can also use Carbon instead of DateTime)
  $end_timestamp->toTimeString(), //end time (you can also use Carbon instead of DateTime)
  $eve->id //optionally, you can specify an event ID
  );
  //die($event);
}

最新更新