2

我对 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>

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

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

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

作为

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

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

小部件('登录');?>

这给我这个错误

引用

include(Login.php) [function.include]: 未能打开 >stream: 没有这样的文件或目录

告诉我出了什么事???我应该怎么做才能让我的小部件出现在我的页面中。

一旦我尝试过这个

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

我收到了这个错误

引用

别名“application.extensions.widget.login.Login”无效。确保它指向 >existing PHP 文件并且该文件是可读的。

4

1 回答 1

0

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

于 2015-10-21T03:50:05.503 回答