【问题标题】:Laravel Everything Displaying Except My TimeLaravel 显示除我的时间之外的所有内容
【发布时间】:2017-04-03 12:59:11
【问题描述】:

我有一个事件视图,用户可以在其中创建任何事件,并且所有事件都可以在“事件”页面上查看。出于某种原因,所有数据都显示在我的表格上,除了我的Time 列。

我这里有一些代码,希望它能提供一些线索,说明为什么它在我的表格视图中显示为空。

事件控制器

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>

时间很好地插入到我的数据库中,但它只是没有显示在我的视图中。

数据类型

数据库中的表

活动视图

这与我的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 = [];
}

【问题讨论】:

  • 保持一致并使用小写。没有时间而是时间(在数据库中)。
  • @Kyslik 感谢您的帮助,我已在我的数据库中将其更改为小写。现在正在显示。您是否会碰巧知道如何将其格式化为 12 小时 AM/PM 而不是 24 小时?再次感谢!
  • 以后用google,ideone.com/NkvsjN

标签: php sql laravel date


【解决方案1】:

您应该使用$event-&gt;Time 大写字母,因为这是您的列的定义方式。模型属性区分大小写。

【讨论】:

  • 谢谢,我在 MySqlWorkbench 中创建了表,然后在 Laravel 中创建了模型。我在表中的数据类型是time 类型,我是否应该将其切换为日期时间,并按照您的建议使用$event-&gt;time-&gt;toDateTimeString()?我的start_date and end_date 显示正常。
  • 在你的控制器中尝试dd($event-&gt;time);,看看这个属性的类型是什么。
  • 我收到一条错误消息Undefined property: Illuminate\Database\Eloquent\Collection::$time
  • 你也可以发布你的模型吗?
  • @JDubbleU 你也可以试试dd($event-&gt;Time) 加上大写。您的数据库是Time,但您正尝试像time 一样访问它。 :)
猜你喜欢
  • 2018-12-18
  • 2022-08-17
  • 1970-01-01
  • 2012-12-05
  • 1970-01-01
  • 1970-01-01
  • 2015-02-10
  • 2014-10-26
  • 2012-12-07
相关资源
最近更新 更多