Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
Kelas Premium!
Belajar bikin website dari nol sekarang
Gunakan kupon "lebihcepat" untuk diskon 25%!
Cara Passing data dari Model ke Controller dan ditampilkan di view laravel
ini controller yang saya buat
public function ledger($id)
{
$kelas = Kelas::find($id);
$mapel = Mapel::all();
$siswa = Siswa::find($id);
return view('nilai.ledger', ['siswa' => $siswa, 'mapel' => $mapel, 'kelas' => $kelas]); }
ini model mapel
public function kelas()
{
return $this->belongsTo(Kelas::class, 'kelas_id');
}
public function siswa()
{
return $this->belongsToMany(Siswa::class)->withPivot(['pa', 'pp', 'ka', 'kp']);
}
ini model siswa
public function kelas()
{
return $this->belongsTo(Kelas::class);
}
public function mapel()
{
return $this->belongsToMany(Mapel::class)->withPivot(['pa', 'pp', 'ka', 'kp']);
}
dan ini model kelas
public function siswa()
{
return $this->hasMany(Siswa::class);
}
public function mapel()
{
return $this->hasMany(Kelas::class);
}
ini viewnya
<table class="table table-bordered">
<thead class="table-success">
<tr>
<th rowspan="3" style="text-align: center">No</th>
<th rowspan="3" style="text-align: center">Nama Siswa</th>
<th colspan="20" style="text-align: center">Nilai Tiap Mata Pelajaran</th>
<th rowspan="3" style="text-align: center">Jumlah</th>
<th rowspan="3" style="text-align: center">Rata-Rata</th>
</tr>
<tr>
<th colspan="2" style="text-align: center">IPA</th>
<th colspan="2" style="text-align: center">IPS</th>
<th colspan="2" style="text-align: center">MTK</th>
<th colspan="2" style="text-align: center">PAI</th>
<th colspan="2" style="text-align: center">PENJAS</th>
<th colspan="2" style="text-align: center">B.ING</th>
<th colspan="2" style="text-align: center">B.ARB</th>
<th colspan="2" style="text-align: center">B.IND</th>
<th colspan="2" style="text-align: center">BMR</th>
<th colspan="2" style="text-align: center">TAHFIDZ</th>
</tr>
<tr>
<th style="text-align: center">P</th>
<th style="text-align: center">K</th>
<th style="text-align: center">P</th>
<th style="text-align: center">K</th>
<th style="text-align: center">P</th>
<th style="text-align: center">K</th>
<th style="text-align: center">P</th>
<th style="text-align: center">K</th>
<th style="text-align: center">P</th>
<th style="text-align: center">K</th>
<th style="text-align: center">P</th>
<th style="text-align: center">K</th>
<th style="text-align: center">P</th>
<th style="text-align: center">K</th>
<th style="text-align: center">P</th>
<th style="text-align: center">K</th>
<th style="text-align: center">P</th>
<th style="text-align: center">K</th>
<th style="text-align: center">P</th>
<th style="text-align: center">K</th>
</tr>
</thead>
<tbody class="table-light">
@foreach ($siswa->mapel as $mapel )
<tr>
<td>{{ $loop->iteration }}</td>
<td value="{{ $siswa->id }}">{{ $siswa->nama }}</td>
<td>{{ $mapel->pivot->pa }}</td>
<td>{{ $mapel->pivot->ka }}</td>
</tr>
@endforeach
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>1045</td>
<td>87,5</td>
</tbody>
</table>
dan ini hasilnya
hasil.JPG
yang di inginkan nama siswanya tidak ikut terlooping dan nilai nilai yang ada itu masuk kedalam mata pelajarannya masing masing
1 Jawaban:
<div>Di controller kamu sekarang</div><pre>$kelas = Kelas::find($id); $mapel = Mapel::all(); $siswa = Siswa::find($id);</pre><div><br>Perhatikan pada $kelas dan $siswa kamu mengambil data (dengan find) berdasarkan id.<br>Berarti kamu mengambil 1 kelas dan 1 siswa sesuai dengan id tersebut.<br><br><strong>Yang kamu mau adalah mengambil "relationship" nya<br></strong>saya tidak tahu apa itu fungsi $ledger.<br>Asumsi ini untuk mengambil data dari "mapel", maka:<br><br><br></div><pre>$mapel = Mapel::with('siswa', 'kelas')->find($id);</pre><div><br>Nanti pada viewnya, cara mengambil data<br><br></div><pre>$mapel->siswa->data_kolom_yang_dimau $mapel->kelas->data_kolom_yang_dimau</pre><div><br>Jika lebih dari satu maka diloop terlebih dahulu</div><pre>@foreach($mapel->siswa as $_siswa)</pre><div><br>Coba intip lagi ya<a href="https://laravel.com/docs/9.x/eloquent-relationships"> dokumentasi laravel terkait relation</a></div>
Tanggapan
makasih mas jawabannya