未找到Laravel php脚本数据库类

时间:2013-05-15 16:05:38

标签: php laravel

我正在尝试编写用于查询的laravel的脚本 我的数据库和提取表,但我不知道要包括什么 在文件中,以使DB类工作。

到目前为止我的代码看起来像:

$ tables = DB :: query(“SHOW TABLES”); foreach($ tables as $ table){         打印$ table。 “\ n” 个; }

我尝试使用require“../../vendor/autoload.php”,但这没有帮助。

因此,例如,如果我在控制器中调用它,DB类可以正常工作,但不是 如果我创建一个目录,比如/ application / scripts并创建一个文件test.php。 如果我尝试在该文件中调用DB,则不会定义DB类(有充分理由)。 我想知道我需要在该文件中需要什么才能定义该类。

3 个答案:

答案 0 :(得分:3)

我建议使用Illuminate/Database包(Laravel 4的一部分)。您将无法获得DB接口,因为这是Laravel Framework提供的特殊外观,但所有查询构建器功能都可通过该封装获得。

使用composer安装illuminate/database,然后按照随附的readme notes(完整性包含在下方)。


照亮数据库

Laravel 4以外的用法

$config = array(
    'fetch' => PDO::FETCH_CLASS,
    'default' => 'mysql',
    'connections' => array(
        'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'laravel',
            'username'  => 'root',
            'password'  => 'password',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),
    ),
);

$capsule = new Illuminate\Database\Capsule($config);

// If you want to use the Eloquent ORM...
$capsule->bootEloquent();

// Making A Query Builder Call...
$capsule->connection()->table('users')->where('id', 1)->first();

// Making A Schema Builder Call...
$capsule->connection()->schema()->create('users', function($t)
{
    $t->increments('id');
    $t->string('email');
    $t->timestamps();
});

答案 1 :(得分:1)

您不需要包含任何内容。 Laravel将包括它所需要的东西并设置系统本身。您正在使用名为$ db的变量,但它未定义,并且表示/不执行任何操作。您正在寻找的是DB类。试试这个:

$tables = DB::query('SHOW TABLES');
foreach ($tables as $table)
{
    echo $table.PHP_EOL;
}

另外,查看Fluent DB类文档: http://laravel.com/docs/database/fluent

答案 2 :(得分:0)

......不是DB::query()吗?对数据库引擎的调用是通过类而不是变量来解决范围问题。