Cara jumlah(sum) di laravel

Jadi saya memmbuat suatu aplikasi dimana saya dapat mengisi data poin untuk klasemen, sbb:

View:

<table class="table table-hover table-sm" id="table">
			<tr>
				<th><b>No</b></th>
				<th><b>Pereli</b>
				</th><th>R1</th>
				<th>R2</th>
				<th>R3</th>
				<th>R4</th>
				<th>R5</th>
				<th>Total</th>
				<th width="180px">Kelola</th>
			</tr>
			$total = 0;
			@foreach($klasemenperelisprints as $klasemenperelisprint)
				<tr>
					<td><b>{{++$i}}</b></td>
					<td>{{$klasemenperelisprint->perelis->nama_peserta}}</td>
					<td>{{$klasemenperelisprint->poin_overall1}}</td>
					<td>{{$klasemenperelisprint->poin_overall2}}</td>
					<td>{{$klasemenperelisprint->poin_overall3}}</td>
					<td>{{$klasemenperelisprint->poin_overall4}}</td>
					<td>{{$klasemenperelisprint->poin_overall5}}</td>
					<td class="jumlah"></td>
					<td>
						<a class="btn btn-sm btn-success" href="{{route('klasemenperelisprint.show', $klasemenperelisprint->id)}}">Detil Poin</a>
						</form>
					</td>
				</tr>
			@endforeach
		</table>
	</div>

Nah, yang jadi masalahnya adalah bagaimana cara menjumlahkan poin_overall 1-5 tersebut, dan menampilkannya ke <td class="jumlah"></td> ?

Sebelumnya, saya sudah mencoba untuk melakukannya di Controller seperti ini:

public function index()
    {
        $klasemenperelisprints = klasemenperelisprint::all()
        						->select('sum(klasemenperelisprints.poin_overall1*klasemenperelisprint.poin_overall2) AS poin_total');

        return view('klasemenperelisprint.index', compact ('klasemenperelisprints'))
                    ->with('i', (request()->input('page',1) -1) *10);
    }

Cuma, muncul error ini: Method Illuminate\Database\Eloquent\Collection::select does not exist.

avatar mArvAlcao17
@mArvAlcao17

1 Kontribusi 0 Poin

Diperbarui 5 tahun yang lalu

2 Jawaban:

mungkin karena method all() itu kan kalo di mysql jadi "SELECT * ...", terus ditambah pake method select(), jadi method select()nya gak ada

avatar rizalspid
@rizalspid

21 Kontribusi 6 Poin

Dipost 5 tahun yang lalu

Kalau kolom point overal statis, belajar accessor dan mutator saja, nanti dimodelnya dibuat custom attribute (misal point_total),

<pre> protected $appends = ['point_total'];

public function getPointTotalAttribute() { return $this-&gt;poin_overall1+$this-&gt;poin_overall2+...; } </pre> di controller: $model-&gt;all();

di view tinggal panggil langsung saja $klasemenpwelisprint-&gt;point_total

avatar zillucks
@zillucks

28 Kontribusi 8 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban