我可以在 Laravel 之外使用 DB::table('tags')... 吗?
Posted
技术标签:
【中文标题】我可以在 Laravel 之外使用 DB::table(\'tags\')... 吗?【英文标题】:Can I use DB::table('tags')... outside of Laravel?我可以在 Laravel 之外使用 DB::table('tags')... 吗? 【发布时间】:2015-03-13 10:56:35 【问题描述】:我在 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 目录,但我真的不知道它指的是哪个类。
【问题讨论】:
【参考方案1】:首先,您需要引用“Capsule”类所在的命名空间。在脚本顶部添加:
<?php use Illuminate\Database\Capsule\Manager as Capsule;
然后你可以调用:
Capsule::table('part')->where('id', '=', '1')->get();
同样在你的情况下尝试使用:
Capsule::table('tags')->insert($values);
【讨论】:
【参考方案2】:DB
指的是Illuminate\Database\DatabaseManager
,所以如果您在文件顶部添加:
use Illuminate\Database\DatabaseManager as DB;
你应该可以使用DB
【讨论】:
【参考方案3】:如果您在 Illuminate 以外的命名空间中,您可以将其用作 \DB,它会在您的命名空间之外查找并找到 DB Facade
【讨论】:
【参考方案4】:实际上,这是有效的:
Tag::insert($values);
不知道为什么我不想尝试这个。还是谢谢。
【讨论】:
以上是关于我可以在 Laravel 之外使用 DB::table('tags')... 吗?的主要内容,如果未能解决你的问题,请参考以下文章