草庐IT

php - 数组的 Yii 验证规则

有没有办法在Yii模型的rules()方法中要求元素数组?例如:publicfunctionrules(){returnarray(array('question[0],question[1],...,question[k]','require'),);}我遇到过需要验证多个元素数组的情况来自表格,除了执行上述操作之外,我似乎找不到解决它的好方法。我在指定attributeLables()时遇到了同样的问题。如果有人有一些建议或更好的方法,我将不胜感激。 最佳答案 您可以使用type别名的CTypeValidatorpublicfu

php - Yii 在每个页面之前检查用户是否登录

我必须在呈现每个页面示例之前检查用户是否已登录:http://mypage.com/site/about在开始时检查用户是否登录,如果没有-重定向tom登录页面我不想在每个组件中都添加它,怎么办? 最佳答案 你也可以使用它来检查如果它是真的那么用户没有登录否则登录if(Yii::app()->user->isGuest){//notloggeduser}else{//loggedinuser} 关于php-Yii在每个页面之前检查用户是否登录,我们在StackOverflow上找到一个类

php - yii\base\ErrorException - 找不到类 'app\controllers\EntryForm'

我刚刚尝试了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

php - 调整 Yii2 表单中的文本框大小

我正在学习一个教程,它使用的是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

php - Yii2 从 url 中删除 index.php

当我在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时出现错误

php - 在 Yii2 .htaccess 中将 http 重定向到 https

htaccess文件,它将我的高级Yii2应用程序重定向到前端index.php文件,因为已经有一个.htaccess文件。其中有以下几行..这是我现在在根目录下的.HTACCESSOptions-IndexesRewriteEngineonRewriteCond%{REQUEST_URI}!^publicRewriteRule^(.*)$frontend/web/$1[L]#DenyaccessingbelowextensionsOrderallow,denyDenyfromall#DenyaccessingdotfilesRewriteRule(^\.|/\.)-[F]现在我搜索了

php - 使用自定义文本字段过滤 CGridView

我需要使用自定义文本字段过滤CGridView。我有自定义数据提供者(CSqlDataProvider),我返回并用它填充表格。表格很好,但对我来说似乎很痛苦的是过滤它。我已经花了几个小时试图解决这个问题,但支持很差。我看到有一些用于更新CGridView的jQuery方法,它采用“数据”参数,我不知道如何格式化其值。这是我在我的/create文件中做的,我需要这个东西。PHP:clientScript->registerScript('search',"$('.search-formform').submit(function(){$.fn.yiiGridView.update('s

php - 在 yii2 上覆盖模块的翻译路径

假设我安装了模块Foo与Composer形成一个存储库。模块结构是这样的:-Foo|-models|-controllers|-views|-messages|-configMessagesFoo的文件夹包含模块的翻译文件。现在我想覆盖Foo的一些翻译字符串.来自Yii2i18nDocumentation我尝试在翻译组件的配置中使用fileMap属性来映射bar类别为bar.php(而不是从app\modules\Foo\messages读取),但它对翻译没有任何影响。我的i18n组件配置是:'i18n'=>['translations'=>['*'=>['class'=>'yii\i

php - 带有自定义 URL 的 ActionColumn 按钮

我需要向Yii2的ActionColumn添加新的自定义按钮.使用Internet上可用的示例,我设法创建了一个用于呈现自定义按钮的闭包,它现在使用默认URL呈现。但是,我需要一个自定义URL。我设法通过覆盖$url值来完成此操作,我的自定义按钮的关闭函数被馈送,并使用其他函数参数生成URL,如下所示:'buttons'=>['see'=>function($url,$model,$key){$options=['title'=>Yii::t('yii','Seeinfrontend'),'aria-label'=>Yii::t('yii','See'),'data-pjax'=>'0

php - 在 yii2 中设置动态时区

有谁知道如何为每个用户设置动态时区?如果时区存储在数据库中,我如何从数据库中获取它并在运行时设置它,这样我就不需要每次都在我的代码中设置它? 最佳答案 这是一个示例,假设时区作为字符串存储在users表的timezone列中。将此添加到您的应用程序配置中:'onbeforeRequest'=>function(){$user=Yii::$app->user->identity;if($user&&$user->timezone){Yii::$app->setTimeZone($user->timezone);}},此代码将在请求之前