我可以使用DB::table('tags')吗?拉拉维尔外


Can I use DB::table('tags')... outside of Laravel?

我在我的Zend应用程序中使用Eloquent ORM。这允许我执行以下操作:

$capsule = new Capsule();
$capsule->addConnection( $config );
$capsule->bootEloquent();
.
.
.
$question = new Question();      
$question->user_id = $user->id;
$question->title = $params->title;
$question->content = $params->content;
$question->save();

但是,我想执行以下操作以允许我执行多个插入:

DB::table('tags')->insert($values);

..但当然我得到以下错误:

Fatal error: Class 'DB' not found ...

我可以在 Laravel 之外使用这些 DB::* 方法吗?我在我的/vendor/Illuminate/数据库目录中看了一下,但我真的不知道它指的是哪个类。

首先,您需要引用"Capsule"类所在的命名空间。在脚本顶部添加:

<?php use Illuminate'Database'Capsule'Manager as Capsule;

然后你可以打电话:

Capsule::table('part')->where('id', '=', '1')->get();

同样,在您的情况下,请尝试使用:

Capsule::table('tags')->insert($values); 
DB引用

Illuminate'Database'DatabaseManager所以如果你在文件顶部添加:

use Illuminate'Database'DatabaseManager as DB;

您应该能够使用DB

如果你在 Illuminate 以外的命名空间中,你可以将其用作 ''DB,它将查看您的命名空间之外并找到 DB 外观

实际上,这奏效了:

Tag::insert($values);

不知道为什么我没有想到尝试这个。无论如何,谢谢。