我正在努力获得正确的语法,以解决我要设定的关系条件.主要关系与外键Question_ID设置,但在子表中也包含是USER_ID列. 我希望仅返回与登录用户相关的记录.这是我到目前为止的一切 - class SurveyQuestion extends CActiveRecord { ....... public function relations() { return array( 'answered_questions' => array(self::HAS_MANY, 'AnsweredQuestion', 'question_id', 'condition'=>"answered_questions.user_id = Yii::app()->user->id'"), ); } 请有人纠正我的语法,该语法到目前为止无法正常工作吗
以下是关于 yii 的编程技术问答
我已经有一个工作的OOP网站.大多数PHP与HTML分开.我想知道是否有人有任何有关如何将该站点应用于YII框架的提示. 编辑 该网站使用JQuery,HTML,CSS,PHP,JavaScript.它还由我购买的代码峡谷购买的许多库和课程组成.就像地理位置库一样,phpthumb(图像缩略图)喜欢和不喜欢系统.如何将这些库导入yii? 解决方案 我一年前也有类似的任务,但是该代码根本不是OO.我创建了一个新的YII项目,并将旧站点作为该项目的LIB.然后,我在YII中设置了基本知识,例如数据库访问,无论两个项目中都需要哪个会话值等.然后,我按路由移植了路由,逐个功能.花了一些时间,但效果很好.我刚刚有一个bootstrap脚本,该脚本基于" ported_routes"路由请求. 在重复使用类时,如果它们在没有旧代码的依赖性的情况下结构良好,则不应该是问题. yii对这些东西没有任何限制,因此只需将它们添加为libs或通过yii文档浏览,看看将它们重构为yii
我正在尝试在cdetailview中显示图像,这是我的代码: widget('zii.widgets.CDetailView', array( 'data'=>$model, 'attributes'=>array( 'image', array( 'name'=>'image', 'type'=>'raw', 'value'=> CHtml::image(Yii::app()->request->baseUrl.'../../../images/arsip/'.$model->image), ), ), )); ?> 页面可以查看,但是图像无法显示,我也尝试使用'value'=>
有时我会被三种渲染方法弄乱: Controller::render() Controller::renderPartial() Controller::renderFile() 请您解释一下.谢谢! 解决方案 render() 通常用于渲染与用户在应用程序中的"页面"相对应的视图.它首先呈现您指定的视图,然后呈现当前控制器操作的布局(如果适用),将第一个渲染的结果放入布局中.然后,它执行输出处理(目前这意味着自动插入任何必要的标签并更新动态内容),并最终输出结果. renderPartial() 通常用于渲染页面的"部分".与render()的主要区别在于,此方法不是将渲染结果放在布局中.默认情况下,它也不执行输出处理,但是您可以使用$processOutput参数覆盖此行为. renderFile() 是一种低级方法,可以完成渲染的咕unt工作:它在当前范围中提取数据变量,然后运行视图代码.其他两种方法在内部称呼这是一种,但是您实际上
我在yii中有一个奇怪的iSuue. 我们将YII与Android和iOS一起用于Web服务.在手机中有视频上传页面. 这是IAM在yii中使用的代码上传视频: $file_path_image = ""; $directory='images/Post'; $file_path_video = ""; $model = new TblCommunity(); if(isset($_FILES['video'])){ $file = $_FILES['video']; print_r($file); $videoID = $model->getRandomString(); $video
我是Yiibie,我正在努力上传视频.我已经使用了uploadmultifile扩展名,并根据我的video view文件和我的videocontroller中的链接http://www.yiiframework.com/extension/uploadmultifiles/进行了更改.该视频成功进入video folder(projectname/video),但它不是名为video的数据库表.我希望,当我通过projectname/video/create创建视频时,应该在键入URL projectname/video/admin时显示它,以便可以在此处管理视频,之后我可以简单地在界面上显示所有视频.我一直在寻找所有这些,但没有想出一个命中率,请帮助我. 这是我的Video Controller 的代码
通过变量登录视图我使用: $this->render('login', array('model' => $model)); ,但我还需要在模板part footer.php中使用此变量: 我尝试这个: $this->render('footer', array('model' => $model)); 但是在footer.php中我尝试acces变量时,我会出现错误"未定义变量" 怎么了? 解决方案 yii中的模板正在通过$this参考获取控制器的数据. something = 'qwerty'; } public function actionA() { $this->render('vie
我对YII客户端验证有一些疑问.当我将clientOptions -> validateOnSubmit分配到True时,YII会自动在客户端验证我的表格吗?好的,那么验证规则将从模型中的rules()方法中获取规则?为什么当我直接将'minlength' => 2直接写入表单模板中的字段定义时,它将无法使用? 解决方案 这是cactiveform小部件的样本: $form = $this->beginWidget('CActiveForm', array( 'id' => 'register-form', 'enableClientValidation' => true, 'enableAjaxValidation' => false, 'client
"文本日期"字段的日期验证. http://http://sky-walker. net/temp/test/yii/testdate/index.php?r =站点/登录 如果我根据需要设置"必需"验证. 我想要的文本字段是在提交表单时以及使用AJAX丢失焦点时变成红色或绿色.如果变成红色,也应该出现错误消息. 来自login.php
labelEx($model,'textDate'); ?> textField($model,'textDate'); ?> error($model,'textDate'); ?> 来自loginform.php public $textDate; 来自规则() ...array('textDate', 'date', '
我正在验证要上传的文件类型.验证规则似乎不起作用.我只想接受JPG文件,但是当我尝试放置PDF文件时,它仍然接受它并且没有任何错误.请帮忙.我不知道我在做什么错. 查看: beginWidget('CActiveForm', array( 'id'=>'document-form', 'enableAjaxValidation'=>true, 'enableClientValidation'=>true, 'clientOptions'=>array('validateOnSubmit'=>true), //This is very important 'htmlOptions'=>array('enctype'=>'multipart/form-data'),)); ?>
Fields with * are required.
我正在使用YII Framework 2.0.我有一个带有文本输入字段的表格,该字段旨在日期.我已经阅读了YII框架2.0有关 class yii \ validator \ validator ,并知道所有可以在模型类中使用 rules()方法中使用的验证器键.当我使用 date 键如下所示时,它不会验证任何内容.这意味着我仍然可以将一些文本放在该输入字段中并发布表格. 当我将其更改为布尔值或电子邮件时,我可以看到当我在输入字段中错了一些错误时,它可以很好地验证.如何使用YII Framework 2.0验证输入字段内的日期值? 我的规则()方法: public function rules() { return [ [['inputfield_date'], 'required'], [['inputfield_date'], 'safe'], [['inputfield_date'], 'date'],
我都有一个模型预订,该模型地址是两个模型地址. 我现在想将它们打印到基本上很好地工作的相同形式,问题是两个模型的字段具有相同的ID.例如,shipping_address中的" zip"字段具有ID" zip",而billing_address中的" zip"也具有" zip"为ID. 如果我现在填写表格,它同时验证了两个字段,而其中只有一个实际上是正确的. 我已经将字段的名称更改为shippping_address ['zip']和billing_address ['zip'],因此控制器能够识别这两个模型. 这是印刷字段的方式: field($billing_address, 'address_line_1')->textInput(['maxlength' => 45, 'name'=> 'Billing_Address[address_line1]']); ?> field($billing_address, '
我在徘徊,有没有机会将场景用于规则, 在我的模型中,我有 public function rules() { return array( array('delivery, firstNameBilling, lastNameBilling, addressBilling, cityBilling, countryBilling, postBilling, telephoneBilling, mailBilling, firstNameDelivery, lastNameDelivery, addressDelivery, cityDelivery, countryDelivery, postDelivery, telephoneDelivery, mailDelivery', 'required'), array('active', 'numerical', 'integerOnly'=>
我试图在我的联系表中使用YII添加验证码,但是验证存在一些问题. 我的模型 class ContactForm extends CFormModel { public $verifyCode; public function rules() { return array( array('verifyCode', 'captcha', 'allowEmpty'=>!CCaptcha::checkRequirements(),'on'=>'captchaRequired'), array('verifyCode', 'safe'), ); } } 我的控制器中的代码 public function filters() { return array( 'accessControl', ); } public function accessRules()
我有一个日期列,通常以dd.MM.yyyy为单位.它在模型的rules()中的验证规则是: array('start, end', 'date', 'format' => 'dd.MM.yyyy'), 我正在从CSV文件中填充数据库,如果CSV记录为空,我希望能够将日期设置为NULL(即没有).所以,我在做: if (empty($csv_data)) { $user->start = new CDbExpression('NULL'); } else { $user->start = $csv_data; } ,但我遇到了一个错误,即日期格式无效.为什么是? CDateValidator文档说allowEmpty属性是正确的默认情况下,它应该能够将其设置为NULL,对吗?请注意,如果我只是将""字符串调整到日期,它将其转换为0000-00-00 00:00:00时间戳,不是NULL. . 解决方案 在模型rules()中: array('s
我在表单上有两个字段(忘记通信表单)用户名和电子邮件ID.用户应该输入其中之一.我的意思是检索密码用户可以输入用户名或电子邮件ID.有一个点我可以为此验证规则吗? 我可以使用任何内置规则吗? (对不起,如果已经讨论过或我错过了) 感谢您的帮助 问候 kiran 解决方案 我今天试图解决同样的问题.我得到的是下面的代码. public function rules() { return array( // array('username, email', 'required'), // Remove these fields from required!! array('email', 'email'), array('username, email', 'my_equired'), // do it below any validation of username and email fi
我无法确定此问题是否部分归因于Vagrant,但是我在运行Unix的Vagrant Box中安装了YII 1.x. 我试图强制一个简单的PHP错误,例如控制器中缺少的半彩色,即使我100%确定我有一个创建错误,但我看不到带有stack跟踪的标准YII错误页面.尽管最近似乎已经停止了这种方式工作. 很奇怪的是-yii在脚本底部输出数据库查询(这是旨在的,但我不明白为什么yii仅显示DB查询. 我的个人配置看起来如下:(仅显示其中的一部分..) 我尝试了下面的代码并检查日志,但没有欢乐 ini_set('display_errors',true); error_reporting(E_ALL); 任何人都可以提出任何想法... return array( 'yiiDebug' => true, 'yiiTraceLevel' => 6, ..... 'components'=>array( 'log' => array( 'c
我有以下错误: Vagrant无法安装VirtualBox共享文件夹.这通常是因为文件系统" vboxsf"不可用.这 文件系统可通过VirtualBox Guest添加和 内核模块.请验证这些客人的补充是否正确 安装在客人中.这不是流浪者的错误,通常是 由一个故障的流浪汉引起.对于上下文,命令尝试 是: id -u vagrant 命令输出的错误输出为: id:'vagrant':没有这样的用户 所以我试图搜索解决方案.我已经看到很多人说需要一个特殊的vbguest vagrant插件,然后运行vagrant,并在SSH附加的VBGuest中进行修改. 所以我做了以下步骤: $ vagrant plugin install vagrant-vbguest 然后添加了插件: 安装" vagrant-vbguest"插件.这可能需要一些 分钟...安装插件'vagrant-vbguest(0.13.0)'! $ vagrant up
如何在scandir php的路径地址中使用UTF8字符 我的文件夹名称是: 61- 我在Scandir和DirectoryIterator中有错误. 将文件夹名称更改为 61 解决我的问题,但需要全名. $folder = '61-تست تست'; $path = 'files/'.$folder; print_r(scandir($path)); foreach (new \DirectoryIterator($path) as $file) { if(!$file->isDir()) { echo $file->getFilename() . "
"; } } 错误: UnexpectedValueException The system cannot find the f