2015-01-15 3 views
0

Я использую Eloquent ORM в своем приложении Zend. Это позволяет мне делать такие вещи, как:Могу ли я использовать DB :: table ('tags') ... вне Laravel?

$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 ... 

Могу ли я использовать эти методы DB :: * вне Laravel? Я посмотрел в каталог/vendor/Illuminate/Database, но я действительно не знаю, к какому классу он относится.

ответ

1

Прежде всего, нужно обратиться к пространству имен, где класс «Капсула» находится в В верхней части сценария добавить:.

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

Тогда вы можете позвонить:

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

Аналогично в вашем случае попробуйте использовать:

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

DB является refferring к Illuminate\Database\DatabaseManager, так что если вы добавите в верхней части файла:

use Illuminate\Database\DatabaseManager as DB; 

вы должны быть в состоянии использовать DB

0

Если вы находитесь в пространстве имен, кроме Illuminate просто вы можете использовать его как \ DB это будет выглядеть вне пространства имен и найти DB Фасад

0

на самом деле, это сработало:

Tag::insert($values); 

не знаю, почему я не думаю, чтобы попробовать это. Спасибо, в любом случае.

Смежные вопросы