Postingan lainnya
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.
1 Jawaban:
<div>coba loop is dari </div><pre>$item->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>
Tanggapan
Terimakasih mas hilman