我可以在Laravel之外使用DB :: table('tags')...

时间:2015-01-15 04:29:47

标签: php laravel eloquent

我在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目录,但我真的不知道它指的是哪个类。

4 个答案:

答案 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);

不知道为什么我没想到尝试这个。不管怎样,谢谢。