2016-12-01 2 views
0

Я использую красноречивый 5. * на моем CodeIgniter3.1.1 проекта, все работает отлично, однако я хочу, чтобы проверить запросы, выполняемые при обработке запроса,Как отлаживать красноречивые запросы, выполненные в Codeigniter

Через некоторое Googling я наткнулся Using Eloquent ORM inside CodeIgniter with added Query Logging и с CI Profiler включен я не вижу «нет выполненных запросов»,

мой database.php конфигурация красноречивый выглядит, как показано ниже

//Eloquent ORM database connection 

use Illuminate\Database\Capsule\Manager as Capsule; 

$capsule = new Capsule; 
$capsule->addConnection(array(
'driver' => 'mysql', 
'dsn' => 'mysql:host=localhost; dbname=communit_iwa_test charset=utf8;', 
'host' => $db['default']['hostname'], 
'database' => $db['default']['database'], 
'username' => $db['default']['username'], 
'password' => $db['default']['password'], 
'charset' => 'utf8', 
'collation' => 'utf8_unicode_ci', 
'prefix' => $db['default']['dbprefix'], 
)); 
$capsule->setAsGlobal(); 
$capsule->bootEloquent(); 


$events = new Illuminate\Events\Dispatcher; 
$events->listen('illuminate.query',function($query, $bindings, $time,$name) { 

// Format binding data for sql insertion 

foreach ($bindings as $i => $binding) { 
    if ($binding instanceof \DateTime) { 
     $bindings[$i] = $binding->format('\'Y-m-d H:i:s\''); 
    } else if (is_string($binding)) { 
     $bindings[$i] = "'$binding'"; 
    } 
} 

// Insert bindings into query 
$query = str_replace(array('%', '?'), array('%%', '%s'), $query); 
$query = vsprintf($query, $bindings); 

// Add it into CodeIgniter 
$db = & get_instance()->db; 
$db->query_times[] = $time; 
$db->queries[] = $query; 
}); 

$capsule->setEventDispatcher($events); 
/* End of file database.php */ 
/* Location: ./application/config/database.php */ 

Ваша помощь ценится заранее

+0

Привет, у меня такой же профессиональный blem, Profiler пуст для запросов, вы его исправить? – Piero

+1

Используйте метод 'Capsule :: getQueryLog()' для просмотра запросов, выполненных в красноречивой ORM – hussainfrotan

+0

Да, спасибо! (Для точности требуется Capsule :: enableQueryLog()) – Piero

ответ

0

Чтобы просмотреть казнен красноречивые запросы используют getQueryLog() метод класса Illuminate\Database\Capsule\Manager;

короче

  1. Включите Illuminate\Database\Capsule\Manager класс в контроллере или модели, как use Illuminate\Database\Capsule\Manager as Capsule;
  2. использование Capsule::getQueryLog() метода для просмотра массива всех запросы, выполненные в Eloquent ORM
Смежные вопросы