我正在尝试编写用于查询的laravel的脚本 我的数据库和提取表,但我不知道要包括什么 在文件中,以使DB类工作。
到目前为止我的代码看起来像:
$ tables = DB :: query(“SHOW TABLES”); foreach($ tables as $ table){ 打印$ table。 “\ n” 个; }
我尝试使用require“../../vendor/autoload.php”,但这没有帮助。
因此,例如,如果我在控制器中调用它,DB类可以正常工作,但不是 如果我创建一个目录,比如/ application / scripts并创建一个文件test.php。 如果我尝试在该文件中调用DB,则不会定义DB类(有充分理由)。 我想知道我需要在该文件中需要什么才能定义该类。
答案 0 :(得分:3)
我建议使用Illuminate/Database包(Laravel 4的一部分)。您将无法获得DB
接口,因为这是Laravel Framework提供的特殊外观,但所有查询构建器功能都可通过该封装获得。
使用composer安装illuminate/database
,然后按照随附的readme notes(完整性包含在下方)。
$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()
吗?对数据库引擎的调用是通过类而不是变量来解决范围问题。