2

关于在 Codeigniter 中安装 Smarty,我只需要一点帮助。

我所做的是:

  1. 提取 smarty,重命名为 smarty 并放入第三方文件夹
  2. 在 autoload.php 中启用 smarty
  3. 在视图中创建模板文件夹 (templates,templates_c)
  4. 运行示例页面(在我的情况下,我运行欢迎消息的默认索引)

结果是: 无法加载请求的类:smarty

在我的 autoload.php 中,我添加了 smarty:

$autoload['packages'] = array(APPPATH.'third_party','smarty');


/*
| -------------------------------------------------------------------
|  Auto-load Libraries
| -------------------------------------------------------------------
| These are the classes located in the system/libraries folder
| or in your application/libraries folder.
|
| Prototype:
|
|   $autoload['libraries'] = array('database', 'session', 'xmlrpc');
*/

$autoload['libraries'] = array('smarty');

我只是不知道我的错误在哪里。我希望你能帮助我。我是smarty的初学者。

4

2 回答 2

4

您将需要创建一个库类来扩展 smarty 并自动加载它。在您的/application/library/文件夹中创建一个名为smartylib.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

// path to SMARTY library
include APPPATH.'thirdparty/Smarty/libs/Smarty.class.php';

class Smartylib extends Smarty {

    function __construct() {
        parent::__construct();
    }
}

然后在你的 autoload.php 中自动加载它

$autoload['libraries'] = array('smartylib');

您可能需要在您的构造中为 Smarty 做一些配置。查看有关扩展 smarty的 Smarty 文档

然后,您将能够在控制器中使用它:

$this->smartylib->assign('name','Ned');
$this->smartylib->display('index.tpl');
于 2013-10-02T02:45:52.980 回答
0

此外,如果您喜欢或需要用作

$this->smarty->assign('name', 'Ned');

Controller __Consructor()请在函数上将“smartylib”对象克隆为“smarty”

$this->smarty = clone $this->smartylib;
于 2015-05-29T10:52:01.670 回答