我是Yii框架的新手,刚刚遇到受保护文件夹中的模块,扩展和组件.
任何人都可以在理论上和实际上区分所有这些.
我对protected /中的组件和扩展文件夹的目的有点困惑
请澄清.
我想知道Yii Framework中模块和组件之间的区别.我搜索了这么多,但没有得到任何好结果.所以有人可以帮助我了解这一点.任何帮助和建议都将非常值得一提.
如何使用Yii模型验证规则功能代码验证电子邮件.此外,如何使用Yii中的模型验证规则功能检查电子邮件是否存在.
突击队需要你的帮助.
我在Yii有一个控制器:
class PageController extends Controller {
public function actionSOMETHING_MAGIC($pagename) {
// Commando will to rendering,etc from here
}
}
Run Code Online (Sandbox Code Playgroud)
我需要在Yii CController下使用一些神奇的方法来控制/ page ||下的所有子请求 页面控制器.
这是Yii的某种可能吗?
谢谢!
如您所知,在Yii2中,核心消息以26种语言提供.我想更改yii核心消息语言以我的语言显示验证消息.
我将此行添加到配置文件中:
'language' => 'fa_IR',
Run Code Online (Sandbox Code Playgroud)
并添加了这一行:
'i18n'=>[
...
'yii'=>[
'class' => 'yii\i18n\PhpMessageSource',
'basePath' => "@vendor/yiisoft/yii2/messages",
'sourceLanguage' => 'en_US',
'fileMap' => [
'yii'=>'yii.php',
]
]
]
],
Run Code Online (Sandbox Code Playgroud)
但核心信息以英文显示.我只想使用Yii2提供的框架消息.例如,在此路径vendor/yiisoft/yii2/messages/fa_IR/yii.php中
这项工作的最佳解决方案是什么?
我想获取处理当前操作的当前控制器名称.但在我的情况下,我将在我的布局文件中的main.php中查找当前的控制器.
这是我的目录结构的小视图,让您了解我的布局文件在哪里以及我将代码放入搜索控制器名称的文件
- /保护
- /主题
- / mylayout
- /布局
- main.php
- column1.php
- column2.php
- /现场
- 的index.php
这可能吗?我尝试以下代码,但我没有得到我当前的控制器名称...
echo Yii::app()->controller->getId;
echo Yii:app()->getController->id;
echo Yii:app()->controller->uniqueID;
Run Code Online (Sandbox Code Playgroud)
谢谢
我在Yii框架的JQRelcopy模块中遇到了CJuiDatePicker的问题.
我使用这个模块,因为我有一个带有datepicker字段的表单,可以根据用户的意愿复制多次.
如果我放一个普通字段(没有datepicker),模块工作正常,但是一旦我添加了模块CJuiDatePicker,它也是Yii框架的一个模块,我就会出现一个空白页面.我按照以下教程:http://www.yiiframework.com/extension/jqrelcopy/解释了包含CJuiDatePickerm的表单中的集成jqrelcopy,这正是我需要的.
我研究了这个问题,我发现当我在我的小部件JQRelcopy的属性中使用以下行时,会出现问题:
'jsAfterNewId'=> JQRelcopy :: afterNewIdDatePicker($ datePickerConfig),
在
$ this-> widget('ext.jqrelcopy.JQRelcopy',array(
Run Code Online (Sandbox Code Playgroud)'id' => 'copylink', 'removeText' => 'remove', //add the datapicker functionality to the cloned datepicker with the same options 'jsAfterNewId' => JQRelcopy::afterNewIdDatePicker($datePickerConfig),));
我看了几个论坛,一个人遇到了和我一样的问题.
你能帮助我吗?
对不起我的英语不好
我有以下型号:
User 列{id,user_name,password,user_type}
Admin 列{id,user_id,full_name,..... etc}
Editor 列{id,user_id,full_name,... etc}
关系是
User:'admin' => array(self::HAS_ONE, 'Admin', 'user_id'),'editor' => array(self::HAS_ONE, 'Editor', 'user_id'),
Admin : 'user' => array(self::BELONGS_TO, 'User', 'user_id'),
Editor : 'user' => array(self::BELONGS_TO, 'User', 'user_id'),
现在我fullName在UserModel中设置了一个虚拟属性,如下所示
public function getFullName()
{
if($this->user_type=='admin')
return $this->admin->full_name;
else if($this->user_type=='editor')
return $this->editor->full_name;
}
Run Code Online (Sandbox Code Playgroud)
我可以fullName在gridview中显示虚拟属性,但是如何在属性中添加过滤器并使其在gridview中可排序?
UPADTE 1:
我根据@Jon的答案更新了模型search()函数,如下所示
public function search()
{
$criteria=new CDbCriteria;
$criteria->select=array('*','COALESCE( editor.full_name,admin.first_name, \'\') AS calculatedName');
$criteria->with=array('editor','admin');
$criteria->compare('calculatedName',$this->calculatedName,true);
$criteria->compare('email',$this->email,true);
$criteria->compare('user_type',$this->user_type);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
} …Run Code Online (Sandbox Code Playgroud) Yii1.1有一个CComponent类,它有一个CBaseController,它是CController的基类.有一个/protected/components/Controller.php类,它允许在任何视图中访问该类中的任何函数.
Yii2不再拥有CComponent类.所述Yii2引导指示"的Yii 2.0断CComponent在1.1类分为两类:YII \基\对象和YII \基地\组件".有没有人知道如何在Yii2和任何视图中编写全局函数,就像在Yii1.1中使用/protected/components/Controller.php一样?
几个类似的主题讨论自定义答案,但我想知道是否有正式的方法,而不是自定义的方式.
yii-components ×10
yii ×9
php ×6
yii2 ×2
components ×1
model ×1
module ×1
templates ×1
yii-events ×1
yii1.x ×1