我在我的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);
不知道为什么我没有想到尝试这个。无论如何,谢谢。