2017-03-04 14 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

私は本当に私が – Mariusz

+0

新しいそれは本当にとても簡単ですよbecouse Laravelでそれを使用する方法を知ってはいけません。まず、Composerを使ってCarbonをインストールします。答えに記載されている文書を参照すると、すべてを理解できます。 – Nevermore

+0

私はそれを制御者の中で使うべきですか? – Mariusz

関連する問題