ErrorException Неопределенная переменная Laravel - PullRequest
0 голосов
/ 06 января 2019

Эй, ребята, я только начал изучать, как использовать Laravel, и когда я попытался запустить приведенный ниже код, я получил:

Неопределенная ошибка переменной

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <ul>
        @foreach ($tasks as $task)
            <li>{{ $task->Todo }}</li>
        @endforeach
    </ul>
</body>
</html>

это код, используемый в файле web.php:

web.php

Route::get('/tasks', function () {
        $tasks = DB::table('tasks')->get();
    //return $tasks;
        return view('welcome',compact($tasks));
    });

Я обнаружил, что если я использую $GLOBALS['variable']; для замены переменной $tasks в обоих файлах, это работает.

Но в примере видео с laracasts они не использовали $GLOBALS['variable'];

Это ошибка, которую я получаю:

"Неопределенная переменная: tasks (Просмотр: C: \ Users \ Friday \ Documents \ Documentations \ laraprojects \ BrainGear \ resources \ views \ welcome.blade.php)"

Ответы [ 2 ]

0 голосов
/ 06 января 2019

Вам нужно передать имя переменной в помощник compact() (как сказал @utdev). Вы можете прочитать больше об этом здесь . Итак:

return view('welcome', compact('tasks'));

Другой вариант - отправить переменную в представление следующим образом:

return view('welcome')->with('tasks', $tasks);

или даже «подслащенный» (эквивалент последнего):

return view('welcome')->withTasks($tasks);

Чтобы узнать больше об этом, проверьте Передача данных в раздел документации.

0 голосов
/ 06 января 2019

Вы должны вернуть переменную следующим образом:

    return view('welcome', compact('tasks'));

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

    @foreach ($tasks as $task)
        <li>{{ $task->todo }}</li>
    @endforeach
...