如何在 Laravel 8.* 中使用 Carbon 检查日期验证
How to check date validation with Carbon in Laravel 8.*
我有显示事件的索引页。
@foreach($events as $event)
<div class="row">
<div class="d-flex justify-content-center" style="margin: auto">
<a href="{!! route('eventView', ['id' => $event->id]) !!}" style="text-decoration: none;">
<div class="row" style="margin-top: 10 px">
<p style="display:block">{{$event->name}}</p>
</div>
@if($event->photo_patch)
<img src="{{ asset('storage/' . $event->photo_patch) }}">
@else
<img src="placeholder" alt="...">
@endif
</a>
</div>
</div>
</div>
@endforeach
但问题是它显示所有事件,甚至是过去发生的事件。
我只想显示今天或未来日期的事件
所以我现在卡住了,我不知道下一步该怎么做。
我试过循环显示today/in未来的事件:
public function index()
{
$date = Carbon::today();
$events = Event::where('date_of_event' >= $date)->get();
foreach($events as $event){
if($event->date_of_event >= $date){
dump('Valid');
}
else{
dump('Invalid');
}
}
dump($events);
dump($date);
return view('frontend/index',['events'=>$events]);
}
但我不知道以后如何在我的视图中显示它们。
我的第二个镜头是用这条线做的:
$events = Event::where('date_of_event' >= $date)->get();
但是我遇到了错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column '1' in 'where clause' (SQL: select * from `events` where `1` is null)
这并不准确,因为列名应该是有效的。
我该如何正确实施?
where
的默认运算符是 =
。如果你想改变这个,你将使用第二个参数作为运算符,第三个参数作为你的值。
Event::where('date_of_event', '>=', $date)->get();
有关详细信息,请参阅 Where Clauses。
要使该代码更短,您可以使用此代码
Event::whereDateOfEvent('>=', $date)->get();
我有显示事件的索引页。
@foreach($events as $event)
<div class="row">
<div class="d-flex justify-content-center" style="margin: auto">
<a href="{!! route('eventView', ['id' => $event->id]) !!}" style="text-decoration: none;">
<div class="row" style="margin-top: 10 px">
<p style="display:block">{{$event->name}}</p>
</div>
@if($event->photo_patch)
<img src="{{ asset('storage/' . $event->photo_patch) }}">
@else
<img src="placeholder" alt="...">
@endif
</a>
</div>
</div>
</div>
@endforeach
但问题是它显示所有事件,甚至是过去发生的事件。
我只想显示今天或未来日期的事件
所以我现在卡住了,我不知道下一步该怎么做。
我试过循环显示today/in未来的事件:
public function index()
{
$date = Carbon::today();
$events = Event::where('date_of_event' >= $date)->get();
foreach($events as $event){
if($event->date_of_event >= $date){
dump('Valid');
}
else{
dump('Invalid');
}
}
dump($events);
dump($date);
return view('frontend/index',['events'=>$events]);
}
但我不知道以后如何在我的视图中显示它们。
我的第二个镜头是用这条线做的:
$events = Event::where('date_of_event' >= $date)->get();
但是我遇到了错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column '1' in 'where clause' (SQL: select * from `events` where `1` is null)
这并不准确,因为列名应该是有效的。
我该如何正确实施?
where
的默认运算符是 =
。如果你想改变这个,你将使用第二个参数作为运算符,第三个参数作为你的值。
Event::where('date_of_event', '>=', $date)->get();
有关详细信息,请参阅 Where Clauses。
要使该代码更短,您可以使用此代码
Event::whereDateOfEvent('>=', $date)->get();