使用简单查询到数据库表时出现语法错误

时间:2014-04-22 16:59:21

标签: php laravel

我在Laravel中有一个非常简单的设置,而我正在学习它,但我无法理解为什么我会收到错误。这可能是我忽略的一些简单。

我可以得到这个:

Route::get('users', function() {
    $users = User::all();
    return View::make('users')->with('users', $users);
});

示例在Laravel上完美运行,在users.blade.php视图中显示此信息。

在我的数据库中,我还有一个'列表'表但是当我复制上面代码的结构以尝试显示我的列表时,我收到以下错误。

syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM), expecting '('

在线

 $lists = list::all();

我的代码如下 的 routes.php文件

Route::get('lists', function() {
    $lists = list::all();
    return View::make('lists')->with('lists', $lists);
});

list.php / models

<?php
class List extends Eloquent {}

lists.blade.php / views

@extends('layouts.main')
@section('content')
@foreach($lists as $list)
    <p>{{ $list->name }}</p>
@endforeach
@stop

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:2)

列表是PHP中的reserved keyword,因此您不能将其用作类名。来自文档:

  

这些词在PHP中具有特殊含义。其中一些代表看起来像函数的东西,一些看起来像常量,等等 - 但它们并非真的:它们是语言结构。您不能将以下任何单词用作常量,类名,函数或方法名称。

不幸的是,您需要拥有不同的类名,然后将对象的表名设置为“#list”列表&#39;像这样:

class AppList extends Eloquent { protected $table = 'lists'; }