Error saat menampilkan data hasil relasi MorphToMany Laravel

Izin bertanya mengenai cara menampilkan data dari hasil relasi MorphToMany di Laravel. Untuk memasukkan data relasinya berhasil, namun untuk menampilkan salah satu data hasil relasinya terdapat error Undefined property: Illuminate\Database\Eloquent\Relations\MorphToMany::$bentuk_kegiatan_id . Mungkin untuk lebih jelasnya, saya lampirkan file controller, model dan view untuk menampilkan datanya

views:

<table class="table table-striped">
                        <tr>
                          <th style="width: 70px">No.</th>
                          <th>Perihal</th>
                          <th>Deskripsi</th>
                          <th>Tanggal Diajukan</th>
                          <th>Dokumen Penunjang</th>
                          <th>Kegiatan</th>
                          <th>Hapus</th>
                          <!--  <th>Action</th> -->
                        </tr>
                        @foreach($kerjasama as $item)
                        <tr>
                          <td style="width: 90px">{{ $loop->iteration }}</td>
                          <td><a href="{{ url('pengusul/'.$item->id) }}">{{ $item->perihal_kerjasama }}</a></td>
                          <td>{{ $item->deskripsi }}</td>
                          @if($item->status == 1)
                            <td><div class="badge badge-danger">Belum Direview</div></td>
                          @elseif($item->status == 2)
                            <td><div class="badge badge-success">Proses di Legal</div></td>
                          @endif
                          <td>{{ $item->created_at }}</td>
                          <td style="text-align:center"><a href="{{ Storage::url($item->filepath) }} " class="btn btn-icon btn-info"><i class="far fa-file"></i></a></td>
                          <td>{{$item->bentukKegiatans()->bentuk_kegiatan_id}}</td>
                          <td style="text-align:center"><a href="{{ url('pengusul/'.$item->id) }} " class="btn btn-icon btn-info"><i class="far fa-delete"></i></a></td>
                        </tr>
                        @endforeach
                      </table>

Controller:

<?php

namespace App\Http\Controllers;

use App\Models\Dokumen;
use App\Models\Kerjasama;
use App\Models\BentukKegiatan;
use App\Models\PenggiatKerjasama;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class PengusulController extends Controller
{

    public function daftar_usulan()
    {
        $user = Auth::user();
        $kerjasama = Kerjasama::all();
        return view('pengusul.daftar_usulan', compact(['user','kerjasama']));
    }
}

Model Kerjasama:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Kerjasama extends Model
{
    use HasFactory;
    protected $table = 'kerjasama';

    public function bentukKegiatans()
    {
        return $this->morphToMany(BentukKegiatan::class,'bentuk');
    }
}

Model Bentuk Kegiatan:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class BentukKegiatan extends Model
{
    use HasFactory;

    protected $table = "bentuk_kegiatan";

    public function kerjasamas()
    {
        return $this->morphByMany(Kerjasama::class,'bentuk');
    }
}

Nah, itu dia untuk kode yag saya lampirkan. Semoga Teman2 bisa membantu menjawab.

avatar Ihzarizky
@Ihzarizky

39 Kontribusi 9 Poin

Diperbarui 2 tahun yang lalu

1 Jawaban:

<div>coba loop is dari&nbsp;</div><pre>$item-&gt;bentukKegiatans</pre><div><br>Ini cara mengeluarkan hasil <a href="https://laravel.com/docs/8.x/eloquent-relationships#many-to-many-polymorphic-retrieving-the-relationship">morphToMany di dokumentasi laravel</a><br>Kita perlu loop fungsinya</div>

avatar hilmanski
@hilmanski

2670 Kontribusi 2132 Poin

Dipost 2 tahun yang lalu

Tanggapan

Terimakasih mas hilman

Login untuk ikut Jawaban