Я разработал систему, которая использует maddhatter / laravel-fullcalendar. Она работает, и у меня не было проблем с отображением календаря с событиями. Однако есть проблема, что в календаре отображаются все события от разных пользователей. Может ли кто-нибудь помочь мне с этим. решить это?
Контроллер // показываем события в календаре
$events = Schedule::get();
$events->user()->id;
$event_list = [];
foreach ($events as $key => $event) {
$event_list[] = Calendar::event(
$event->event_name,
false,
new \DateTime($event->start_date),
new \DateTime($event->end_date),
null,
// Add color and link on event
[
'color' => '#05B06C',
//'url' => 'http://full-calendar.io',
]);
}
//Display Fullcalendar
$calendar_details = Calendar::addEvents($event_list)
->setOptions([ //set fullcalendar options
'firstDay'=> 1,
'editable'=> true,
'navLinks'=> true,
'selectable' => true,
'durationeditable' => true,
]);
return view('front.teacher.schedule.index', compact('calendar_details','events') );
}
Модель
пространство имен App \ Model;
используйте Illuminate \ Database \ Eloquent \ Model;
класс Schedule расширяет модель { protected $ fillable = [ 'event_name', 'start_date', 'end_date' ]; }
Вид
{!! Form::open(array('route' =>'schedule:addEvents','method'=>'POST','files'=>'true'))!!}
<div class = "row">
<div class = "col-xs-12 col-sm-12 col-md-12">
@if (Session::has('success'))
<div class = "alert alert-success">{{Session::get('success')}}</div>
@elseif (Session::has('warning'))
<div class = "alert alert-danger">{{Session::get('warning')}}</div>
@endif
</div>
<div class = "col-xs-4 col-sm-4 col-md-4">
<div class = "form-group">
{!! Form::label('event_name','Name:') !!}
<div class = "">
{!! Form::text('event_name',null,['class'=>'form-control'])!!}
{!! $errors->first('event_name','<p class = "alert alert-danger">:message</p>') !!}
</div>
</div>
</div>
<div class = "col-xs-3 col-sm-3 col-sm-3">
<div class = "form-group">
{!! Form::label('start_date','Start Date:')!!}
<div class = "">
{!! Form::input('datetime-local','start_date',\Carbon\Carbon::now(),['class' => 'form-control']) !!}
{!! $errors->first('start_date', '<p class = "alert alert-danger">:message</p>') !!}
</div>
</div>
</div>
<div class = "col-xs-3 col-sm-3 col-md-3">
<div class = "form-group">
{!!Form::label('end_date','End Date:')!!}
<div class = "">
{!! Form::input('datetime-local','end_date',null, ['class' => 'form-control']) !!}
{!! $errors->first('end_date', '<p class = "alert alert-danger">:message</p>') !!}
</div>
</div>
</div>
<div class = "col-xs-1 col-sm-1 cold-md-1 text-center"> <br/>
{!! Form::submit('Add Event',['class'=>'btn btn-primary']) !!}
</div>
</div>
{!!Form::close() !!}
</div>
</div>
<div class = "panel panel-primary">
<div class = "panel-heading">My Event Details</div>
<div class = "panel-body">
{!! $calendar_details->calendar() !!}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection @section ('сценарий')
<script src = "https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment.min.js"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.2.7/fullcalendar.min.js"></script>
{!! $calendar_details->script() !!}
Таблица расписания
Спасибо за ответ на вопрос. Да, пользователь будет сохранен в сеансе. Я подробнее изучу взаимосвязь с базой данных, чтобы решить эту проблему.






$events = Schedule::get();Я полагаю, вам нужно поместить туда предложение WHERE, чтобы указать, для какого идентификатора пользователя вы хотите ограничить его. Я не знаю Laravel, поэтому не знаю точного синтаксиса, но держу пари, вы могли бы его найти. Также я не знаю, как вы сохраняете, какой пользователь вошел в систему в настоящее время (возможно, в сеансе?), Поэтому вам тоже нужно это выяснить. Это скорее вопрос Laravel / Database, он не имеет ничего общего с fullCalendar, я не думаю - fullCalendar просто отобразит любые события, которые вы ему дадите.