2016-11-19 1 views
2

У меня есть просмотр событий, где пользователи могут создавать любое событие, и все события будут отображаться на странице «События». По какой-то причине все данные отображаются на моем столе, за исключением моего столбца Time.Laravel Все, что отображается за исключением моего времени

У меня есть код здесь, надеюсь, он даст некоторые подсказки относительно того, почему он отображается как пустой в моем представлении таблицы.

События Контроллер

public function event() 
 
{ 
 
    $events = Event::all(); 
 
    return view('pages.event', compact('events')); 
 
} 
 

 
public function createEvent() 
 
{ 
 
    return view('pages.createevent'); 
 
} 
 

 
public function newEvent() 
 
{ 
 
    $event = Event::create(Request::only(
 
    'name', 
 
    'description', 
 
    'location', 
 
    'time', 
 
    'start_date', 
 
    'end_date' 
 
    )); 
 

 
    $event->save(); 
 

 
    \Session::flash('flash_message', 'Event Created Successfully!'); 
 

 
    return redirect('event'); 
 
}
События Смотреть

<table class=" display table table-hover table-bordered" , id="event"> 
 
    <thead> 
 
    <th>Name</th> 
 
    <th>Description</th> 
 
    <th>Location</th> 
 
    <th>Time</th> 
 
    <th>Start Date</th> 
 
    <th>End Date</th> 
 
    <th>Functions</th> 
 

 
    </thead> 
 
    <tbody> 
 
    @foreach($events as $event) 
 
    <tr> 
 
     <td>{{ $event->name }}</td> 
 
     <td>{{ $event->description }}</td> 
 
     <td>{{ $event->location }}</td> 
 
     <td>{{ $event->time }}</td> 
 
     <td>{{ $event->start_date }}</td> 
 
     <td>{{ $event->end_date }}</td> 
 
     <td> 
 
     <button type="button" class="btn btn-default" style="float:left; margin-right:5px;"><a href="pages/editevents/{{$event['id']}}"><i class="fa fa-pencil" aria-hidden="true"></i> 
 
             Edit</a> 
 
     </button> 
 
     <button type="button" class="btn btn-default" style="display:inline; margin-right:auto;"><a href="deleteEvent/{{$event['id']}}">Delete</a> 
 
     </button> 
 
     </td> 
 
    </tr> 
 
    @endforeach 
 
    </tbody> 
 
</table>

Время, вставляется в мою базу данных просто отлично, но это просто не отображается на мой взгляд.

Типы данных

Data Types

Таблица в БД

Table in Database

Просмотр событий Events View

Это как-то связано с моим типом данных time? Любая помощь по этому вопросу будет принята с благодарностью!

События Модель

namespace App\Models; 
 
use Illuminate\Database\Eloquent\Model; 
 
/** 
 
* Class Events 
 
*/ 
 
class Event extends Model 
 
{ 
 
    protected $table = 'Events'; 
 
    protected $primaryKey = 'id'; 
 
    public $timestamps = false; 
 
    protected $fillable = [ 
 
     'name', 
 
     'description', 
 
     'location', 
 
     'time', 
 
     'start_date', 
 
     'end_date' 
 
    ]; 
 
    protected $guarded = []; 
 
}

+0

быть последовательным и использовать нижний регистр .. нет Время, но время (в базе данных). – Kyslik

+0

@ Kyslik Спасибо за помощь, я изменил его в своей базе данных на нижний регистр. Показывается. Не могли бы вы узнать, как отформатировать его до 12 часов AM/PM вместо 24 часов? Еще раз спасибо! –

+0

В будущем используйте Google, http://ideone.com/NkvsjN – Kyslik

ответ

1

Вы должны использовать $event->Timeс заглавной буквы, потому что, как определено в столбце. Свойства модели чувствительны к регистру.

+0

Спасибо, я создал таблицу в MySqlWorkbench, затем создал модель в Laravel. Мой тип данных в таблице является типом 'time', должен ли я переключать его на datetime и использовать' $ event-> time-> toDateTimeString() ', как вы предложили? Мой «start_date и end_date» отображается в порядке. –

+0

Попробуйте 'dd ($ event-> time);' в вашем контроллере, чтобы узнать, каков тип этого свойства. –

+0

Я получаю сообщение об ошибке 'Undefined property: Illuminate \ Database \ Eloquent \ Collection :: $ time' –

Смежные вопросы