Codeigniter 3 发布后和本教程中 我遇到了一些问题
我想使用 Eloquent 并执行以下步骤
使用此 json 文件安装依赖项
 {
      "require": {
      "illuminate/database": "4.2.6"
 },
"autoload": {
"classmap": [
 "application/core",
"application/models",
"application/libraries"
]
},
"config": {
"vendor-dir": "vendor/"
}
}
Run Code Online (Sandbox Code Playgroud)安装成功
下面进行一些配置:
A。更新库autoload.php => $autoload['libraries'] = array('database');
b. 更新config.php => $config['composer_autoload'] = TRUE;
C。更新数据库.php
  $active_group = 'default';
  $query_builder = TRUE;
  $db['default'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'ci3',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => TRUE,
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
  );
  use Illuminate\Database\Capsule\Manager as Capsule;
  $capsule = new Capsule;
  $capsule->addConnection(array(
      'driver' => in_array($db['default']['dbdriver'], array('mysql', 'mysqli')) ? 'mysql' : $db['default']['dbdriver'],
      '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);
Run Code Online (Sandbox Code Playgroud)
d. 创建一个名为 ci3 的数据库并使用表 users 来代替它
这是我的模型
<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
use \Illuminate\Database\Eloquent\Model as Eloquent;
class Users extends Eloquent {
    protected $table = "users";
}
Run Code Online (Sandbox Code Playgroud)
和我的控制器
    <?php
  if (!defined('BASEPATH')) exit('No direct script access allowed');
  class User extends CI_Controller {
      public function __construct() {
          parent::__construct();
          $this->load->model('users');
      }
      public function index($page = 1) {
          $users = Users::all();
          foreach ($users as $user) {
              echo '<li>' . $user->username . '</li>';
              echo '<li>' . $user->password . '</li>';
              echo '<li>' . $user->email . '</li>';
          }
          echo '</ul>';
      }
  }
Run Code Online (Sandbox Code Playgroud)
这是我的错误报告
致命错误:在第 88 行的 C:\xampp\htdocs\ci3\application\config\database.php 中找不到类“Illuminate\Database\Capsule\Manager”
遇到 PHP 错误
严重性:错误
消息:未找到类“Illuminate\Database\Capsule\Manager”
文件名:config/database.php
线路编号:88
回溯:
我不知道如何安排胶囊课程
问题是…你错过了 laravel 的“events”库,请将以下行添加到你的composer.json中:
"illuminate/events": "5.0.28"
就我而言,我使用 Laravel 5,所以我的composer.json 如下所示:
{
        "require": {
                "illuminate/database": "5.0.28",
                "illuminate/events": "5.0.28"
        } 
}
Run Code Online (Sandbox Code Playgroud)
请检查我在这里是如何实现的。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           9861 次  |  
        
|   最近记录:  |