在Yii中,我通过config/main.php文件启用了APC缓存:
'cache' => array(
'class' => 'system.caching.CApcCache',
),
Run Code Online (Sandbox Code Playgroud)
当我使用Yii的内置缓存方法时,它工作得很好:
Yii::app()->cache->set('key', $value);
Run Code Online (Sandbox Code Playgroud)
但是,有没有办法根据配置临时关闭它?我不想把它激活,而YII_DEBUG设置为true,例如,想$votes = Yii::app()->cache->get("key");给总是返回false因为它的时候它是空的.
我试着通过评论配置设置来解决这个问题,但它给出了(不是不合理的)错误: Call to a member function get() on a non-object
我有一个dropDownList在我看来,它是由填充clients表,表中包含样柱first_name,last_name,id等等,现在我想展示first_name并last_name作为显示文本和id在下拉列表中的值,我有做id的价值和first_name作为显示文本,但在这里我想组合这些列(first_name和last_name)并用作显示文本.
在模型中
function getClients()
{
$Clients = Client::model()->findAll();
$list = CHtml::listData($Clients , 'client_id', 'first_name');
return $list;
}
Run Code Online (Sandbox Code Playgroud)
在视野中
echo $form->dropDownList($model,'client_id',$model->getClients());
Run Code Online (Sandbox Code Playgroud) 
我不想更新密码fields.how使用this.Im使用md5编码为password.So我不想更新yii框架中的密码字段.任何帮助赞赏?
我的_form模型中有一个下拉列表,我想添加一个空值(我想要默认值).我有以下内容:在_form中:
<?php echo $form->labelEx($model,'country_id'); ?>
<?php echo $form->dropDownList($model,'country_id',Country::items(),array('empty' => '--Select a country--')); ?>
<?php echo $form->error($model,'country_id'); ?>
Run Code Online (Sandbox Code Playgroud)
在模范国家:
public static function items()
{
return CHtml::listData(Country::model()->findAllBySql(
'SELECT * from country'),
'id', 'name');
}
Run Code Online (Sandbox Code Playgroud)
即使我的空选项位于下拉列表的第一行,列表中的第一个国家/地区也显示为默认选项.
我试过了:
<?php echo $form->dropDownList($model,'country_id',
Country::items(),array('empty'=>'--Select a country--',
'options'=>
array(
'3'=>array('selected'=>'selected')
)
));
?>
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我可以选择默认选项,但不能将其设置为空值,只是来自model:items的国家/地区.
任何的想法?
当我尝试连接到我的数据库时,一切正常,但是当我尝试使用query()命令执行SQL语句时,我收到此错误:
连接被重置
页面时重置了与服务器的连接
页面无法加载.
$sql = <<<SQL
SELECT
1
FROM
dual
SQL;
$oci=Yii::app()->db;
$command = $oci->createCommand($sql);
$dataReader = $command->query();
Run Code Online (Sandbox Code Playgroud)
我正在尝试在index.php页面中执行此操作,如果我对最后一行进行注释,则页面加载成功.
我测试了连接,echo isset(Yii::app()->db);我得到了1.
我正在oci8Pdo.OciDbConnection上课.
编辑:
print_r($ command)结果:
CDbCommand Object ( [params] => Array ( ) [_connection:private] => OciDbConnection Object
( [pdoClass] => Oci8PDO [connectionString] => oci:dbname=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=********)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=********)));
[username] => ***** [password] => ******* [schemaCachingDuration] => 0
[schemaCachingExclude] => Array ( ) [schemaCacheID] => cache
[queryCachingDuration] => 0 [queryCachingDependency] => [queryCachingCount] => 0
[queryCacheID] => cache …Run Code Online (Sandbox Code Playgroud) 在yii的CGridView中,我可以使用$ row获取当前行号.但是这仅返回当前页面中的行索引.我真正需要的是在所有页面中获取绝对行号.
我正在使用yii,所以我的梦想应该"轻松"实现,所以我希望答案不应该指导我向数据提供者添加一个特殊字段或访问寻呼机并获取当前页码然后乘以数字bla bla bla .
谢谢
我正面临着Yii Framework路由的问题.
我已经创建了控制器,我们称之为TestController.php
然后,我需要把它放到一个名为Make的子目录中,所以我的结构看起来像:
controllers/TestController.php
controllers/Make/TestController.php
Run Code Online (Sandbox Code Playgroud)
对于ocurse,如果我更改它的名称,它可以很好地工作,但有没有办法在控制器目录和子目录中放置一个相同名称的控制器?
编辑
我的URLManager配置如下:
'urlManager'=>array(
'showScriptName' => false,
'urlFormat'=>'path',
'rules'=>array(
'gii' => 'gii',
'gii/<controller:\w+>' => 'gii/<controller>',
'gii/<controller:\w+>/<action:\w+>' => 'gii/<controller>/<action>',
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
Run Code Online (Sandbox Code Playgroud)
我有一个控制器Bookmarks.由于我还有一些与书签相关的其他内容,我需要创建一个目录bookmarks并在其中放置一些控制器Categories.
不能强迫它发挥作用.
编辑2
刚检查清洁应用程序.它似乎是一个Yii bug(?).
编辑3
我已根据建议更改了导入配置:
'import'=>array(
'application.models.*',
'application.components.*',
'application.controllers.bookmarks.*'
),
Run Code Online (Sandbox Code Playgroud)
我还创建了正确的路线规则'bookmarks/<controller:\w+>/<action:\w+>'=>'bookmarks/<controller>/<action>',.
我的文件结构现在如下:
BookmarksController.php
bookmarks/CategoriesController.php
Run Code Online (Sandbox Code Playgroud)
这是一个被抛出的异常:
异常'CHttpException',消息'系统无法找到请求的操作"类别".在/home/root/www/yiitesting/framework/web/CController.php:477
我已将Facebook SDK文件放入protected/helpers目录中,我从中为我的Yii应用程序自动加载类和第三方帮助程序.
当我的一个项目涉及Facebook登录时,我想出了这个简单快速的解决方案,使用它Yii::app()->params来实现整个应用程序中对象属性的继承.
// don't mind this $facebook variable, it's just a shortcut in this method
Yii::app()->params['facebook'] = $facebook = new Facebook(array(
'appId' => '148966221932337',
'secret' => 'a52ce7b4a0cd5d517c6ada53fc77cde7',
'cookie' => true,
));
$user = $facebook->getUser();
Run Code Online (Sandbox Code Playgroud)
因此,我在Yii::app()->params['facebook']整个应用程序中都可以使用,设置或取消设置,这样我就可以在我的应用程序中访问Facebook API SDK,但我确实相信这不是一个好的解决方案.
有没有更好的解决方案将Facebook API SDK应用到Yii框架应用程序中?
我正在使用Yii Extension开发的网页中工作,我正在使用HTML2PDF扩展来生成PDF(http://html2pdf.fr/).虽然PDF生成得很好,但它似乎无法识别我的表的大小; 我为行或整个表指定的宽度或高度无关紧要:PDF总是以相同的方式生成(表格宽度恰好适合单元格内容)...以下是我试图指定的方式宽度:
<table width="500px" height="20px" style="margin:10px;">
<tr>
<td width="25%"></td>
<td width="50%"></td>
<td width="25%"></td>
</tr>
<tr bgcolor="#EAF8FF">
<td colspan="3">
<strong>Title</strong>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
我尝试用以下方法指定宽度:
...等等,但似乎没什么关系......表的大小和宽度始终与它包含的文本成比例.但是,"tr"标签中的"bgcolor"和"td"标签中的"colspan"都可以正常工作,所以我不知道会发生什么......我也尝试过指定内部的大小'tr',但没什么......对于我能错过什么的任何想法?
当我使用localhost在我的mac上运行时,我收到此错误.
需要具有FreeType支持的GD PHP扩展或支持PNG的ImageMagick PHP扩展.
我认为问题出在PNG图片上,默认情况下会在联系页面上呈现.所有代码都是Yii框架给出的基本代码:这里只有当我单击Contact导航栏上的选项卡时才会发生.