Ошибка Laravel v5.6, показывающая это «Неопределенное смещение: 0 (Представление: C: \ xampp \ htdocs \ schoolmanagement \ resources \ views \ displaycombinedata.blade.php)» - PullRequest
0 голосов
/ 30 мая 2018

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

Неопределенное смещение: 0 (представление: C: \ xampp \ htdocs \ schoolmanagement \ resources \ views \ displaycombinedata.blade.php)

, пожалуйста, помогите мне.

<head>
    <title>
        Display Combined Data
    </title>
    <h1>Display Combine Data from Database</h1>
</head>
<body>
    <table>
        <thead>
            <th>S.No.</th>
            <th>Student Name</th>
            <th>Student Class</th>
            <th>Student Age</th>
            <th>class Teacher</th>
            <th>Teacher salary</th>
        </thead>
        <tbody>
            <?php for($i=1; $i<=DB::table('students')->count(); $i++):?>
                <tr>
                    <?php $result=DB::table('students')->where('students_id','=',$i)->get();
                    ?>
                    <td>{{($result[0]->students_id)}}</td>
                    <td>{{($result[0]->students_name)}}</td>
                    <td>{{($result[0]->students_class)}}</td>
                    <td>{{($result[0]->students_age)}}</td>
                    <td>{{($result[0]->class_teacher)}}</td>

                    <?php $result1= DB::table('teachers')->where('teachers_name','=',$result[0]->class_teacher)->get(); 
                    if($result1  == null) {?>
                    <td>NA</td>
                    <?php } else{?>
                    <td>{{($result1[0]->salary)}}}</td>
                    <?php } ?>
                </tr>
                <?php: @endfor ?>
        </tbody>
    </table>
</body>

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Просто измените if($result1 == null) на if(count($result1) > 0) или просто if(count($result1)), поскольку 0 равно false.

Причина $result1 == null не работает в том, что построитель запросов возвращает пустую коллекциюэкземпляр, когда нет записей.

0 голосов
/ 30 мая 2018

Появляется ошибка «Неопределенное смещение: 0», поскольку

$result=DB::table('students')->where('students_id','=',$i)->get();

пусто.и в этом коде

<td>{{($result[0]->students_id)}}</td>

вы пытаетесь получить данные из первой записи пустого массива.

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

@if (!empty($result))
   <td>{{($result[0]->students_id)}}</td>
   <td>{{($result[0]->students_name)}}</td>
   <td>{{($result[0]->students_class)}}</td>
   <td>{{($result[0]->students_age)}}</td>
   <td>{{($result[0]->class_teacher)}}</td>
@endIf

Как примечание, вам действительно не следует напрямую запрашивать базу данных в вашем файле Blade!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...