Postingan lainnya
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');
}
}
12 Jawaban:
kalau udah ada usernya tinggal di loop di produknya
foreach ($user->produk as $produk_item) {
//data-datanya ada di $produk_item
}
kalo keluar error gini kira2 kenapa ya bang Hilman? @hilmanrdn
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
updated bang Hilman. kira2 kenapa ya kalo error nya keluar spt itu? @hilmanrdn
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
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
ngga ada yang $produk ya errornya kaya $produk? kalau ngga coba Produk 'p' nya kecil, $order->produk
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)
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?
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
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
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