Я могу успешно создать отношения, но теперь я хочу определить, какая модель используется в отношениях, но я не знаю, как получить к ней доступ. Может ли кто-нибудь указать мне правильное направление? Я пробовал следующее ниже в файле index.blade. php, но он просто возвращает NULL
1 Возможное решение - проверить, является ли значение пустым для каждого определение отношений каждый раз, но есть ли laravel встроенный способ проверки?
@if ($event->services->isNotEmpty())
There are services!
@endif
В основном у меня есть два курса и услуги, определенные отношениями. Я хочу проверить, какой из них соответствует каждое событие.
У меня есть следующие отношения:
services
courses
events
schedulables
event_user
События. php модель
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Event extends Model
{
public function user()
{
return $this->belongsTo('App\User');
}
public function users()
{
return $this->belongsToMany('App\User');
}
public function courses()
{
return $this->morphedByMany('App\Course', 'schedulable');
}
public function services()
{
return $this->morphedByMany('App\Service', 'schedulable');
}
}
index.blade. php
<table class="table table-striped">
<thead>
<tr>
<th scope="col">Start</th>
<th scope="col">End</th>
<th scope="col">Assigned</th>
<th scope="col">Type</th>
<th scope="col">Options</th>
</tr>
</thead>
<tbody>
@foreach ($events as $event)
<tr>
<th scope="row">{{$event->start_date}}</th>
<td>{{$event->end_date}}</td>
<td>{{$event->user->name}}</td>
<td>{{Illuminate\Database\Eloquent\Relations\Relation::getMorphedModel($event->getMorphClass())}}
</td>
<td>
<form action="{{route('events.destroy', $event)}}" method="POST">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-outline-danger">Delete</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>