menampilkan data dari tabel many-to-many

agan-agan mau nanya nih. saya punya tabel pivot "transaksi" yang didapatkan dari relasi many-to-many tabel "user" dan "produk" bagaimana cara menampilkan data dari tabel pivot ke view blade nya ya?

model User seperti berikut:

<?php
namespace App;

use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */

    protected $table = 'users';

    protected $fillable = [
        'name', 'email', 'password', 'level'
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    public function artikel() {
        return $this->hasMany('App\Artikel');
    }

     public function role() {
        return $this->belongsTo(Role::class, 'roles_id');
    }

    public function hasRule($nameRule){
        if($this->role->name == $nameRule){
            return true;
        }
            return false;
    }

    public function produk(){
        return $this->belongsToMany('products', 'transaksi', 'user_id', 'produk_id');
    }
}

model Produk seperti berikut:

 <?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Cviebrock\EloquentSluggable\SluggableInterface;
use Cviebrock\EloquentSluggable\SluggableTrait;

class Produk extends Model implements SluggableInterface
{
    use SluggableTrait;
    protected $table = 'products';

    protected $sluggable = [
        'build_from' => 'name',
        'save_to'    => 'slug',
    ];


	public function kategori() {
    	return $this->belongsTo('App\Kategori');
    }

    public function user(){
        return $this->belongsToMany('users', 'transaksi', 'produk_id', 'user_id');
    }
}

avatar imansetyawan
@imansetyawan

21 Kontribusi 0 Poin

Diperbarui 7 tahun yang lalu

12 Jawaban:

kalau udah ada usernya tinggal di loop di produknya

 foreach ($user->produk as $produk_item) {
    //data-datanya ada di $produk_item
}
avatar hilmanski
@hilmanski

2672 Kontribusi 2132 Poin

Dipost 7 tahun yang lalu

kalo keluar error gini kira2 kenapa ya bang Hilman? @hilmanrdn

avatar imansetyawan
@imansetyawan

21 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

kalo agan mau nanya error biasakan 1. kode yang erronya disertakan jadi orang tahu salahnya dimana 2. gambar bisa ditarto didalam tag gambar langsung biar orang ngga perlu ke halaman lain, coba klik bagian "embed codes" di tempat ypload gambarnya cari format jpg atau png nah silahkan di paste di antara tag img forum skeolahkoding

avatar hilmanski
@hilmanski

2672 Kontribusi 2132 Poin

Dipost 7 tahun yang lalu

updated bang Hilman. kira2 kenapa ya kalo error nya keluar spt itu? @hilmanrdn

avatar imansetyawan
@imansetyawan

21 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

itu kan ada error di file bladenya dan pada baris berapa, tapi kita disini ngga lihat kodenya agan seperti apa di bagian yang error itu, jadi kurang bisa bantu

avatar hilmanski
@hilmanski

2672 Kontribusi 2132 Poin

Dipost 7 tahun yang lalu

wah iya maaf ketinggalan bang source code nya @hilmanrdn

                @foreach($order->Produk as $item)<<--line46
                <tr>
                  <td>{{$item->id}}</td>
                  <td>{{$item->qty}}</a></td> <<--line 49
                  <td>{{$item->subtotal}}</td>
                  <td>{{$item->subtotal}}</td>
                </tr>
                @endforeach
avatar imansetyawan
@imansetyawan

21 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

ngga ada yang $produk ya errornya kaya $produk? kalau ngga coba Produk 'p' nya kecil, $order->produk

avatar hilmanski
@hilmanski

2672 Kontribusi 2132 Poin

Dipost 7 tahun yang lalu

sudah saya coba 'p' nya kecil juga masih keluar error yang sama bang @hilmanrdn

Undefined property: Illuminate\Database\Eloquent\Collection::$produk (View: C:\xampp\htdocs\mw\resources\views\transaksi\index.blade.php)

avatar imansetyawan
@imansetyawan

21 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

mungkin saya salah paham kasusnya, ini cuma mau nyambungin 2 table atau ada 3 table? table transaksi ada sendiri? hubugnannya seperti apa ke yang lain? di atas cuma ada dua model soalnya

sekedar ngecek juga coba loop 2 kali hasilnay bisa ngga

 // Blade template
@foreach ($users as $user)
  // access user properties here
  @foreach ($user->produk as $item)
    // access item properties here.
  @endforeach
@endforeach

*$order agan sendiri dari mana variablenya? bisa lihatin fungsi yang berisi vairbale ini sebelum di passing ke viewnya?

avatar hilmanski
@hilmanski

2672 Kontribusi 2132 Poin

Dipost 7 tahun yang lalu

jadi tabel nya ada 3 gan, table 'user', table 'produk' sama ada tabel 'transaksi yang didapat dari relasi many-to-many tabel 'user' dan tabel 'produk'. disini saya mau nampilin isi tabel 'transaksi' gt bang, apa perlu table 'transaksi' yang diperoleh dari tabel user dan tabel produk dibuat modelnya juga ya?

kalo pas saya loop 2 kali hasilnya seperti ini bang @hilmanrdn:

 http://i.imgur.com/6YLIkZd.jpg
avatar imansetyawan
@imansetyawan

21 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

Saya masih ngga ngerti sebenarnya struktur database yang agan bikin. dan asal dari variable $order dari mana seperti di koment sebelumnya.

Coba satu lagi kalo gitu gan


@foreach($user->produk as $item)
{{ $item->pivot->nama_kolom }}
 @endforeach

agan sesuaikan yang sama strukutnya agan

ini ada kelasnya juga disekolahkoding https://sekolahkoding.com/kelas/belajar-laravel-relation/video/pivot-many-to-many

avatar hilmanski
@hilmanski

2672 Kontribusi 2132 Poin

Dipost 7 tahun yang lalu

variable $order saya ambil dari model user bang spt ini

 public function index()
    {
        $orders = User::all();
        $sitebar = User::find(Auth::user()->id);
        return view('transaksi.index', compact('orders', 'sitebar'));
    }

saya coba cara spt itu juga blm berhasil bang, error yang sama @hilmanrdn

avatar imansetyawan
@imansetyawan

21 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban