2
我对YII及其扩展非常新颖...我试图创建基本登录小部件作为扩展,以便我可以重用它。认为我已经完成了。在Yii中创建小部件作为扩展
创建扩展/插件/登录/视图/ 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"> </div>
<div class="row">
<?php echo CHtml::submitButton('Login',array('class'=>'logbtn')); ?>
</div>
</td>
</tr>
</table>
和在主窗口部件夹 创建的login.php(即:application/extensions/widget/login/login.php)代码如下:
<?php
class Login extends CWidget
{
public function run()
{
$this->render('hloginForm');
}
}
?>
and made all ext ensions在配置自动加载/ main.php
为
'import'=>array(
...
'application.extensions.*',
),
然后尝试使用它在我的网页视图文件
插件( '登录'); ?>这把我这个错误
报价
包括(login.php中)[]:未能打开>流:没有这样的文件或目录
告诉我出了什么事???我应该怎么做才能让我的Widget进入我的页面。
,一旦我想这
$this->widget('application.extensions.widget.login.Login', array());
我得到这个错误
报价
别名 “application.extensions.widget.login.Login” 是无效的。确保它指向一个>现有的PHP文件,并且该文件是可读的。
实际上,文件夹路径应该是[您的应用名称] /protected/extensions/widget/login/Login.php。不要忘记登录文件夹的设置权限。 –
''application.extensions。*','是不够的。 Yii路径不递归,你的课程将不会被发现。试试'application.extendions.widgets.login。*'来代替。另外请确保你的文件被称为'Login.php'而不是'login.php'。 –
@MichaelHärtl'application.extensions。*'不是递归的,它是真的,但我们不需要这个声明来配置扩展工作,但这绝对不是原因。 –