2017-03-04 42 views
0

您好,我在將列'start'和'end'事件提取到日曆時遇到了一些問題。我做了循環,它的工作,標題,日期顯示在日曆上,但時間不起作用。所有事件都在allDay事件上設置,但我將allDay設置爲false。 我做了創建表單和工作好的事件發送到數據庫。但是這種表現真的很討厭。我試圖解決它,但我不知道我犯了什麼錯誤。Laravel 5.4從日期庫提取日曆開始和結束事件

控制器:

<?php 
 

 
namespace App\Http\Controllers; 
 

 
use Illuminate\Http\Request; 
 
use App\HomeModel; 
 
use MaddHatter\LaravelFullcalendar\Event; 
 
use Illuminate\Support\Facades\DB; 
 
use DateTime; 
 

 
class HomeController extends Controller 
 
{ 
 
    /** 
 
    * Create a new controller instance. 
 
    * 
 
    * @return void 
 
    */ 
 
    public function __construct() 
 
    { 
 
     $this->middleware('auth'); 
 
    } 
 
    
 

 
    /** 
 
    * Show the application dashboard. 
 
    * 
 
    * @return \Illuminate\Http\Response 
 
    */ 
 
    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 \Illuminate\Http\Response 
 
    */ 
 
    
 
      public function create() 
 
     { 
 
      return view('create'); 
 
     } 
 
     /** 
 
    * Store a newly created resource in storage. 
 
    * 
 
    * @param \Illuminate\Http\Request $request 
 
    * @return \Illuminate\Http\Response 
 
    */ 
 
    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 Illuminate\Database\Eloquent\Model; 
 

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

查看:

@extends('layouts.app') 
 

 
@section('content') 
 

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

 
    
 
\t \t \t \t \t \t \t \t \t 
 
\t \t </div> \t \t \t \t \t \t 
 
</div> 
 
\t \t \t \t 
 
@endsection

Screen how it look

回答

0

日期和時間的情況下..你可能想通過碳。

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); 
} 
+0

我真的不知道如何在Laravel使用becouse我是新 – Mariusz

+0

這是真的很簡單。首先,使用作曲家安裝碳。然後閱讀答案中提到的文件,你會明白一切。 – Nevermore

+0

我應該在控制器中使用它? – Mariusz

相關問題