从控制器访问模型 - Laravel 4

Gun*_*uns 3 php mysql laravel eloquent laravel-4

我是Laravel的新手.如果这个问题听起来很奇怪,请原谅.

我有一个模特

class Config extends Eloquent {

    public static $table = 'configs';

}
Run Code Online (Sandbox Code Playgroud)

并且控制器变为

class UserController extends BaseController {

    Public function getIndex ()
    {
        $config_items = Config::all ();
        var_dump ( $config_items );
        return View::make ( 'user.userindex' )
                        -> with ( 'title', 'User Page' );
    }

}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试访问Config模型时,我收到错误:

Symfony\Component\Debug\Exception\FatalErrorException调用未定义的方法Illuminate\Config\Repository :: all()

错误信息

请帮忙!

我知道这个问题可以帮助很多像我和我的同事一样的Laravel 4新手,所以请帮忙!

fid*_*per 8

正如评论者指出的那样,Config实际上是一个已经定义/使用的类.

您有两种选择:

选项1:

命名空间您的Config模型:

<?php namespace My\Models;

use Illuminate\Database\Eloquent\Model;

class Config extends Model { ... }
Run Code Online (Sandbox Code Playgroud)

然后在你的控制器中:

$config_items = My\Models\Config::all();
Run Code Online (Sandbox Code Playgroud)

注意:如果你选择选项1(我建议你这样做),你需要为你的命名空间库设置自动加载.请参阅此博客文章,了解如何使用自动加载功能设置您自己的Laravel库.

选项2:

不要Config用作型号名称:

<?php

class Configuration extends Eloquent { ... }
Run Code Online (Sandbox Code Playgroud)

然后在你的控制器中:

$config_items = Configuration::all();
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!


Try*_*elf 5

我认为Config是laravel用来管理配置文件的保留关键字,所以请尝试将模型名称更改为其他名称