在laravel 4中未在视图中定义的变量

时间:2014-03-21 06:52:06

标签: laravel-4

我刚刚开始学习laravel。这些是我跟随的步骤:。

  1. 在routes.php
  2. 中创建了一条路线
  3. 在视图文件夹中创建了两个文件,并使用yield()和extends()连接它们。
  4. 在模型文件夹
  5. 中创建模型

    我试图从名为注册的表中获取数据,但它说的是未定义的变量 (ErrorException: 未定义的变量:userdata(查看:/var/www/laravel/app/views/registrations.blade.php) )

    这是表格的描述:

    +-------+------------------+------+-----+---------+----------------+
    | Field | Type             | Null | Key | Default | Extra          |
    +-------+------------------+------+-----+---------+----------------+
    | id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
    | name  | varchar(255)     | NO   |     | NULL    |                |
    | email | varchar(255)     | NO   | UNI | NULL    |                |
    +-------+------------------+------+-----+---------+----------------+
    

    这是routes.php文件

    <?php
    
    Route::get('registrations', function(){
        $userdata = registration::all();    
        return View::make('registrations')->with('registrations', $userdata);
    });
    

    这是位于views文件夹中的registrations.blade.php

    @extends('layout')
    
    @section('content')
        @foreach($userdata as $data)
            <p>{{ $data->name }}</p>
        @endforeach
    @stop
    

    这是位于views文件夹中的layout.blade.php

    <!DOCTYPE HTML>
    <html>
        <head>
            <title></title>
        </head>
        <body>
            <h1>layout</h1>
            @yield('content')
        </body>
    </html>
    

    这是位于模特文件夹中的registration.php文件

    <?php
    
    class registration extends Eloquent {};
    
    ?>
    

    我无法找到确切的问题

1 个答案:

答案 0 :(得分:2)

在您的控制器中,您将从您的模型收到的$ userdata集合作为&#39;注册&#39;,因此您的视图将以$ registrations的形式收到此集合。

因此,从我在您的问题中看到的内容,以下内容应该有效:

@extends('layout')

@section('content')
    @foreach($registrations as $data)
        <p>{{ $data->name }}</p>
    @endforeach
@stop