【发布时间】:2017-05-30 00:35:00
【问题描述】:
问题描述: 所以我现在已经尝试了很多东西,但我无法让它发挥作用。使用当前代码,我在行上得到“调用 null 时的成员函数 thisyear()”
控制器:
public function index()
{
$rows = SeatRows::all();
return view('seating.index')
->withRows($rows);
}
SeatRows 型号:
class SeatRows extends Model {
protected $table = 'seat_rows';
public function seats() {
return $this->hasMany('Seats', 'row_id');
}
}
座椅型号:
class Seats extends Model {
protected $table = 'seats';
protected $fillable = [
'name',
'slug',
'row_id',
];
function row() {
return $this->hasOne('SeatRows', 'id', 'row_id');
}
function reservation() {
return $this->hasOne('SeatReservation', 'seat_id', 'id');
}
}
座位预订模式:
class SeatReservation extends Model {
function seat() {
return $this->hasOne('Seats', 'id', 'seat_id');
}
function reservedfor() {
return $this->hasOne('User', 'id', 'reservedfor_id');
}
function reservedby() {
return $this->hasOne('User', 'id', 'reservedby_id');
}
public function scopeThisYear($query) {
return $query->where('year', '=', \Setting::get('SEATING_YEAR'));
}
}
查看:
@foreach($rows as $row)
<li class="seat-row">
<ul class="seat-row-{{$row->slug}}">
@foreach($row->seats as $seat)
<li class="seat @if($seat->reservation->thisyear()->count() > 0) @if($seat->reservation->thisyear()->status->id == 1) seat-reserved @elseif($seat->reservation->thisyear()->status->id == 2) seat-tempreserved @endif @if(Sentinel::getUser()->id == $seat->reservation->thisyear()->first()->reservedfor->id and $seat->reservation->thisyear()->first()->status->id == 1) seat-yours @endif @endif @if(Request::segment(3) == $seat->slug) active @endif ">
<p>
@if($seat->reservation->thisyear()->count() == 0)
<a href="{{ route('seating-show', $seat->slug) }}" data-toggle="tooltip" title="Available">{{ $seat->name }}</a>
@elseif(Sentinel::getUser()->id == $seat->reservation->thisyear()->reservedfor->id and $seat->reservation->thisyear()->status->id == 1)
<a href="{{ route('seating-show', $seat->slug) }}" data-toggle="tooltip" title="This seat is reserved for you!">{{ $seat->name }}</a>
@elseif($seat->reservation->thisyear()->status->id == 1)
<a href="{{ route('seating-show', $seat->slug) }}" data-toggle="tooltip" title="Reserved for: {{ User::getUsernameAndFullnameByID($seat->reservation->thisyear()->reservedfor->id) }}">{{ $seat->name }}</a>
@elseif($seat->reservation->thisyear()->status->id == 2)
<a href="{{ route('seating-show', $seat->slug) }}" data-toggle="tooltip" title="Temporary Reserved By: {{ User::getUsernameAndFullnameByID($seat->reservation->thisyear()->reservedfor->id) }}">{{ $seat->name }}</a>
@else
{{ $seat->name }}
@endif
</p>
</li>
@endforeach
</ul>
</li>
@endforeach
【问题讨论】:
-
请您也显示您与
reservedfor和status的关系吗?