在Yii中创建小部件作为扩展

时间:2013-08-23 09:51:53

标签: php yii yii-extensions yii-widgets

我是YII及其扩展的新手...我正在尝试创建基本的登录小部件作为扩展,以便我可以重用它....

以下认为我已经完成了。

使用此代码在extensions / widget / login / views / hloginForm.php中创建一个小部件视图

<?php echo CHtml::beginForm($this->url, 'post', $this->htmlOptions); ?>
<div class="form header">
<table>
    <tr> 
            <td>
                    <div class="row">
                            <?php echo $form->labelEx($model,'username'); ?>
                            <?php echo $form->textField($model,'username',array('class'=>'txt')); ?>
                            <?php echo $form->error($model,'username'); ?>
                    </div>
                    <div class="row rememberMe">
                            <?php echo $form->checkBox($model,'rememberMe'); ?>
                            <?php echo $form->label($model,'rememberMe',array('class'=>'dull')); ?>
                            <?php echo $form->error($model,'rememberMe'); ?>
                    </div>
            </td>
            <td>
                    <div class="row">
                            <?php echo $form->labelEx($model,'password'); ?>
                            <?php echo $form->passwordField($model,'password',array('class'=>'txt')); ?>
                            <?php echo $form->error($model,'password'); ?>
                    </div>

                    <div class="row">
                            <?php echo $form->label($model,'Forget Password?',array('class'=>'dull')); ?>
                    </div>
            </td>
            <td>
                    <div class="row"> &nbsp; </div>
                    <div class="row">
                            <?php echo CHtml::submitButton('Login',array('class'=>'logbtn')); ?>
                    </div>
            </td>
    </tr>
</table>

并在主widget文件夹中创建了一个Login.php (即:application / extensions / widget / login / login.php),代码如下:

<?php 
class Login extends CWidget
{
    public function run()
    {
            $this->render('hloginForm');
    }
}
?>

并在config / main.php中将所有扩展名设为自动加载

as

    'import'=>array(
            ...
            'application.extensions.*',
    ),

然后尝试在我的网页视图文件中使用它

插件( '登录'); ?&GT;

这给我这个错误

引用

  

include(Login.php)[function.include]:无法打开&gt;流:没有这样的文件或目录

告诉我什么错了???我该怎么做才能在我的页面中获取我的Widget。

一旦我尝试了这个

$this->widget('application.extensions.widget.login.Login', array());

我收到了这个错误

引用

  

别名“application.extensions.widget.login.Login”无效。确保它指向一个&gt;现有的PHP文件,并且该文件是可读的。

1 个答案:

答案 0 :(得分:0)

更改扩展文件夹的“访问”权限可解决此问题。之后它按预期正常工作。