0

我正在尝试为 laravel 编写一个脚本来查询我的数据库并获取表,但我不确定要在文件中包含什么才能使 DB 类正常工作。

到目前为止,我的代码如下所示:

$tables = DB::query("显示表"); foreach ($tables as $table) { 打印 $table 。"\n"; }

我试过使用 require "../../vendor/autoload.php" 但这没有帮助。

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

4

3 回答 3

3

我建议使用Illuminate/Database包(Laravel 4 的一部分)。你不会得到这个DB接口,因为这是 Laravel 框架提供的一个特殊外观,但是所有的查询构建器功能都可以通过 capsule 获得。

illuminate/database使用composer安装,然后按照包含的自述文件说明(为了完整性而包含在下面)。


照亮数据库

在 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();
});
于 2013-05-15T21:22:04.517 回答
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

于 2013-05-15T17:02:20.117 回答
0

……不是DB::query()吗?对数据库引擎的调用是通过一个类而不是变量来确定范围问题的。

于 2013-05-15T16:34:03.853 回答