我在应用程序中使用Yii,我正在编写一个非常简单的用户管理,例如注册、删除和更新用户...为了更新现有用户,我需要先检查旧密码,然后再将其更改为新插入的密码。所以这是我在表单中的字段:username:----old_password:---new_password:---我的用户表如下所示:id,username,password如何在使用新密码更新旧密码之前验证旧密码?我知道通常的php编码,但我想知道是否有任何Yii技巧可以自动执行此操作...提前致谢 最佳答案 你不应该用垃圾污染你的模型。请始终牢记这些基本的MVC原则:您的
有没有办法在Yii模型的rules()方法中要求元素数组?例如:publicfunctionrules(){returnarray(array('question[0],question[1],...,question[k]','require'),);}我遇到过需要验证多个元素数组的情况来自表格,除了执行上述操作之外,我似乎找不到解决它的好方法。我在指定attributeLables()时遇到了同样的问题。如果有人有一些建议或更好的方法,我将不胜感激。 最佳答案 您可以使用type别名的CTypeValidatorpublicfu
我必须在呈现每个页面示例之前检查用户是否已登录:http://mypage.com/site/about在开始时检查用户是否登录,如果没有-重定向tom登录页面我不想在每个组件中都添加它,怎么办? 最佳答案 你也可以使用它来检查如果它是真的那么用户没有登录否则登录if(Yii::app()->user->isGuest){//notloggeduser}else{//loggedinuser} 关于php-Yii在每个页面之前检查用户是否登录,我们在StackOverflow上找到一个类
我刚刚尝试了WorkingwithFormsYiiv2.0.0的“基本”版本教程。我一步一步地跟着它,但我猜有些地方不对劲。我有EntryForm模型,SiteController有actionEntry,两个View也都在那里。错误跟踪:1.in/usr/share/nginx/html/basic/controllers/SiteController.phpatline99}publicfunctionactionAbout(){return$this->render('about');}publicfunctionactionEntry(){$model=newEntryForm
我正在学习一个教程,它使用的是Bootstrap。我不确定如何调整其中的Lan_Id、Name和Employee_Number文本框的大小。我想,我开始了解Yii框架了。这是ViewuserForm.php:session->hasFlash('success')){echoYii::$app->session->getFlash('success');}?>field($model,'Lan_Id');?>field($model,'Name');?>field($model,'Employee_Number');?>'btnbtn-success']);这是模型UserForm.p
当我在Yii中设置选项以从URL中删除index.php时,我收到404错误,错误日志中出现此错误Filedoesnotexist:/var/live/var。在我的浏览器中,我收到此错误TherequestedURL/var/decat/frontend/web/index.phpwasnotfoundonthisserver.但文件恰好位于该位置。可能的解释是我的文档根目录是/var/live并且decat是conf文件中显示的别名。这个url工作正常http://13.21.16.180/decat/index.php/site/login但是当我删除index.php时出现错误
htaccess文件,它将我的高级Yii2应用程序重定向到前端index.php文件,因为已经有一个.htaccess文件。其中有以下几行..这是我现在在根目录下的.HTACCESSOptions-IndexesRewriteEngineonRewriteCond%{REQUEST_URI}!^publicRewriteRule^(.*)$frontend/web/$1[L]#DenyaccessingbelowextensionsOrderallow,denyDenyfromall#DenyaccessingdotfilesRewriteRule(^\.|/\.)-[F]现在我搜索了
假设我安装了模块Foo与Composer形成一个存储库。模块结构是这样的:-Foo|-models|-controllers|-views|-messages|-configMessagesFoo的文件夹包含模块的翻译文件。现在我想覆盖Foo的一些翻译字符串.来自Yii2i18nDocumentation我尝试在翻译组件的配置中使用fileMap属性来映射bar类别为bar.php(而不是从app\modules\Foo\messages读取),但它对翻译没有任何影响。我的i18n组件配置是:'i18n'=>['translations'=>['*'=>['class'=>'yii\i
有谁知道如何为每个用户设置动态时区?如果时区存储在数据库中,我如何从数据库中获取它并在运行时设置它,这样我就不需要每次都在我的代码中设置它? 最佳答案 这是一个示例,假设时区作为字符串存储在users表的timezone列中。将此添加到您的应用程序配置中:'onbeforeRequest'=>function(){$user=Yii::$app->user->identity;if($user&&$user->timezone){Yii::$app->setTimeZone($user->timezone);}},此代码将在请求之前
我目前正在尝试获取基于Yiiframework的PHP应用程序的代码覆盖率报告.代码覆盖由PHPUnit3.6生成,我正在使用whitelistapproach源文件过滤。问题是,当我设置选项addUncoveredFilesFromWhitelist="true"时,代码覆盖中断并出现以下错误:Generatingcodecoveragereport,thismaytakeamoment.PHPWarning:include(CButtonColumn.php):failedtoopenstream:Nosuchfileordirectoryin/home/hijarian/syst