so I want to retrieve the largest percentage of all daily record data according to proposal_id, but I can only return 1 data like this:
class Logbook extends Model
{
use HasFactory;
protected $guarded = ['id'];
protected $dates = ['date'];
const LOGBOOK_PATH = 'public/data/logbooks';
public function user()
{
return $this->belongsTo(User::class);
}
public function proposal()
{
return $this->belongsTo(Proposal::class);
}
public function getPercentage()
{
return Logbook::where('proposal_id', 1)->orderByDesc('percentage')->limit(1)->get(); //
}
}
logbook.migration
class CreateLogbooksTable extends Migration
{
public function up()
{
Schema::create('logbooks', function (Blueprint $table) {
$table->id();
// relational
$table->foreignId('user_id')->constrained('users')->cascadeOnDelete();
$table->foreignId('proposal_id')->constrained('proposals')->cascadeOnDelete();
// detail
$table->date('date')->nullable();
$table->text('activity');
$table->integer('percentage');
$table->text('file')->nullable();
$table->timestamps();
});
}
}
ProposalController
class ProposalController extends Controller
{
public function index()
{
$this->authorize('isLecturer', auth()->user());
return view('admin.lecturers.proposals.index', [
'proposals' => Proposal::where('user_id', '=', Auth::user()->id)->get(),
]);
}
}
views.blade.php
<tbody>
@forelse ($proposals as $proposal)
<tr>
<td>
<a href="javascript: void(0);" class="text-dark font-weight-bold">{{ $loop->iteration }}</a>
</td>
<td> {{ Str::limit($proposal->schema, 30, '...') }}</td>
<td> {{ $proposal->created_at->format('Y') }}</td>
<td> {{ Str::limit($proposal->title, 50, '...') }} </td>
<td> {{ currency_IDR($proposal->total_budget) }}</td>
<td>
<br> total records : {{ $proposal->logbook->count() }} <br>
percentage : {!! $proposal->logbook->getPercentage() !!} // example data : 80%
</td>
<td>
<div>
@can('isLecturer', auth()->user())
<a href="{{ route('lpp.proposal.edit', $proposal->slug) }}" class="btn btn-warning">
<i class="mdi mdi-pencil"></i>
</a>
<a href="{{ route('lpp.proposal.logbook.index', $proposal->slug) }}" class="btn btn-primary">
<i class="mdi mdi-history"></i>
</a>
@endcan
</div>
</td>
</tr>
@empty
<tr>
<td colspan="8" class="text-center">data is empty</td>
</tr>
@endforelse
</tbody>