LARAVEL 7, неопределенная переменная, невозможно передать переменную из контроллера в представление - PullRequest
0 голосов
/ 20 июня 2020

Я новый на Laravel, и я делаю CRUD, следуя этому руководству:

https://appdividend.com/2020/03/13/laravel-7-crud-example-laravel-7-tutorial-step-by-step/

сначала я сделал это сам, а затем Я просто скопировал код из GitHub, в обоих случаях я попал в переменную внутри @foreach:

Facade \ Ignition \ Exceptions \ ViewException Undefined variable: coronacases

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

Это мой код, Контроллер:

// TestController


namespace App\Http\Controllers;

use Illuminate\Http\Request;

class TestController extends Controller
{

    public function index()
    {
        $name = 'hugo';

        return view('test', compact('name'));
    }

Альтернативные синтаксисы, протестированные в контроллере:

/***
* return view('/test', compact('name'));
* return view('name', ['name' => 'James']); with out $name = 'hugo'; earier.
* return view('test', $name]);
* return view('test')->with('name', $data);
* return view('test')->with('name', 'hugo'); with out $name = 'hugo'; earier.
* other solutions tryed here dosnt seems to change anything.
***/

Маршруты:

Route::get('/', function () {
    return view('test');
});
Route::resource('test', 'TestController');

Протестированные альтернативные маршруты:

/***
* Route::get('/test', 'TestController@index');
*
* Route::get('/', function () {
*    return view('test', ['name' => 'James']);
*}); //this one worked, but its not getting data from Controller, so its now what i need
*
*Route::get('/', function () {
*    return view('test', ['name' => $data]);
*}); //didnt work
*
***/ // I think that the problem is here, im having trouble understanding Routes at Laravel Docs

Просмотр:

<html>
    <body>
        <h1>Hello, {{ $name }}</h1>
    </body>
</html>

Также пробовал в View:

/***
* $data
* <?php echo $data ?>
* {{ $name ?? '' }}
***/

Весь этот тест, и я получаю ту же ошибку, я что-то пропустил, и я не могу понять это ... или у меня проблемы с Laravel, конечно что я застрял.

Дополнительная информация:

php ремесленный маршрут: lis t resoult:

Информация о среде

Laravel версия: 7.16.1, Laravel locale: en, Laravel config cached: false, PHP version: 7.4 .6.

Запрос

URL http://127.0.0.1: 8000 / Метод GET

Заголовки

хост 127.0.0.1:8000 пользовательский агент Mozilla / 5.0 (X11; Ubuntu; Linux x86_64; rv: 75.0) Gecko / 20100101 Firefox / 75.0

Я также пробовал с php artisan view: cache && php artisan view: clear

1 Ответ

0 голосов
/ 20 июня 2020

Вы определили функцию под названием index на своем TestController, но не использовали ее. В своем маршруте вы не используете контроллер и эту функцию, поэтому вы получаете эту ошибку.
Ваш метод похож на: route > view
Это должно быть: маршрут > контроллер > вид

Итак, измените свой маршрут:

Route::get('/', function () {
    return view('test');
});

на

Route::get('/', 'TestController@index');

Ура :)

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