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

avatar Zexeed1
@Zexeed1

1 Kontribusi 1 Poin

Diperbarui 1 tahun yang lalu

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')-&gt;find($id);</pre><div><br>Nanti pada viewnya, cara mengambil data<br><br></div><pre>$mapel-&gt;siswa-&gt;data_kolom_yang_dimau $mapel-&gt;kelas-&gt;data_kolom_yang_dimau</pre><div><br>Jika lebih dari satu maka diloop terlebih dahulu</div><pre>@foreach($mapel-&gt;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>

avatar hilmanski
@hilmanski

2672 Kontribusi 2132 Poin

Dipost 1 tahun yang lalu

Tanggapan

makasih mas jawabannya

Login untuk ikut Jawaban