我在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 / Database目录,但我真的不知道它指的是哪个类。
答案 0 :(得分:2)
首先你需要引用名称空间,其中" Capsule" class位于。脚本顶部添加:
<?php use Illuminate\Database\Capsule\Manager as Capsule;
然后你可以打电话:
Capsule::table('part')->where('id', '=', '1')->get();
同样在你的情况下尝试使用:
Capsule::table('tags')->insert($values);
答案 1 :(得分:1)
DB
指的是Illuminate\Database\DatabaseManager
,所以如果您在文件顶部添加:
use Illuminate\Database\DatabaseManager as DB;
您应该可以使用DB
答案 2 :(得分:0)
如果您位于Illuminate以外的名称空间中,只需将其用作\ DB,它将在您的命名空间之外查找并找到DB Facade
答案 3 :(得分:0)
实际上,这很有效:
Tag::insert($values);
不知道为什么我没想到尝试这个。不管怎样,谢谢。