Предполагая, что ваша таблица в базе данных student_details
, создайте красноречивую модель StudentDetail
внутри app/models/StudentDetail.php
:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class StudentDetail extends Model
{
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'student_details';
/**
* Get subjects in the view
*
* @return string
*/
public function getSubjects()
{
$subjects = [];
$subjects[] = $this->A == 1 ? 'A' : null;
$subjects[] = $this->B == 1 ? 'B' : null;
$subjects[] = $this->C == 1 ? 'C' : null;
$subjects = array_filter($subjects);
return implode(',', $subjects);
}
}
Затем вы можете получить данные в вашем контроллере:
public function view()
{
$studentDetails = StudentDetail::get();
return view('view.path', compact('studentDetails'));
}
И изнутри вы можете сделать следующее:
@foreach($studentDetails as $detail)
{{ $detail->name }} : {{ $detail->getSubjects() }}
@endforeach
Вы также можете использовать добавленное свойство, я не использовал его, потому что добавленное свойство добавляется каждый раз, когда создается экземпляр модели.Я считаю, что наличие его в функции делает его гибким в использовании по мере необходимости.