Получить данные из базы данных с условием и показать их в виде - PullRequest
0 голосов
/ 27 февраля 2019

Это данные, которые у меня есть в базе данных

Это то, что я хочу сделать в view.blade.php

Я хочу получить данные из базы данных, если данные внутри столбца равны 1, я хочу получить имя столбца, как вы можете видеть на рисунке 2, но может быть больше одного имени столбца, потому чтостолбец с данными может быть столбцом A, B, C ... и т. д., и я хочу показать имя студента и предмет (a, b, c ... и т. д.), если данные в нем '1' ввид.Я застрял на том, как получить все эти предметы A, B, C .. это код, который я написал, но он неполон, потому что я не знаю, что добавить к нему, чтобы сделать его тем, что я упомянул выше.Надеюсь, кто-нибудь может мне помочь.Заранее спасибо

if($row->'A'=='1'){i dont know what should i put here so that i cant get the column name 'A' and print it in view.blade.php}

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Хорошо, я попробовал это немного по-другому, это не правильно, но это даст вам желаемый результат, который вы хотите: -

Route::get('/test',function(){
    $query = TestTable::all();
    $calculateData = [];
    foreach ($query as $key){
        $subjects = '';
        if($key->A === 1){
            $subjects .= 'A';
        }
        if($key->B === 1){
            $subjects .= 'B';
        }
        if($key->C === 1){
            $subjects .= 'C';
        }
        $calculateData[] = [$key->name,$subjects];
    }
    foreach ($calculateData as $key){
        dump("NAME : " . $key[0]."Subject : " . $key[1]);
    }
    dd("STOP");
})->name('test');
0 голосов
/ 27 февраля 2019

Предполагая, что ваша таблица в базе данных 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

Вы также можете использовать добавленное свойство, я не использовал его, потому что добавленное свойство добавляется каждый раз, когда создается экземпляр модели.Я считаю, что наличие его в функции делает его гибким в использовании по мере необходимости.

...