标签: yii

Yii没有显示任何错误

不能让Yii向webbrowser显示错误.在配置的自定义错误处理程序配置:

'errorHandler' => array(
            // use 'site/error' action to display errors
            'errorAction' => 'site/error',
        ),
Run Code Online (Sandbox Code Playgroud)

但所有错误只写入application.log,然后Apache服务器空页写入错误500.如何在屏幕上显示Yii打印错误?

index.php:

// remove the following lines when in production mode
defined('YII_DEBUG') or define('YII_DEBUG', true);
// specify how many levels of call stack should be shown in each log message
defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);
Run Code Online (Sandbox Code Playgroud)

php error-handling yii

1
推荐指数
1
解决办法
1万
查看次数

Yii大型SQL查询占用大量内存

我正在使用Yii 1.1.14和php 5.3在centos 6上我使用CDbCommand从一个非常大的表中获取数据,结果集是10个列的~90,000条记录我将它导出到csv文件,文件大小是大约15MB,脚本总是崩溃没有任何错误消息,只有经过一些研究后我才发现我需要在php.ini中提高memory_limit才能成功执行脚本.唯一的问题是,为了成功执行,我必须将内存限制提高到512MB(!),这是很多!如果10个用户将执行相同的脚本,我的服务器将不会很好地响应...

我想知道是否有人可能知道使用Yii减少sql查询的内存消耗的方法?我知道我可以使用限制和偏移将查询拆分为多个查询,但15MB查询消耗512MB似乎不合逻辑.

这是代码:

set_time_limit(0);
$connection = new CDbConnection($dsn,$username,$password);
$command = $connection->createCommand('SELECT * FROM TEST_DATA');
$result = $command->queryAll(); //this is where the script crashes
print_r($result);
Run Code Online (Sandbox Code Playgroud)

任何想法将不胜感激!

谢谢,

php apache yii

1
推荐指数
1
解决办法
1152
查看次数

使用Yii 2遇到扩展异常的问题

我正在使用Yii 2框架,它使用了许多扩展异常,我遇到了问题,我扔了一个UserException但是它最终被基地抓住Exception但是我不确定为什么!?

代码:

try {

    //........

    if ($reader->count() > 0) {     

        if (!$already_active) {         
            //.....
        } else {
            throw new UserException('You have already activated your account; you may continue to login.');             
        }

    }

} catch (\Exception $e) {

    // User exception above is caught in here?

} catch (UserException $e) {

    // Rethrow the exception
    throw $e;

}
Run Code Online (Sandbox Code Playgroud)

不应该User Exception被传递到第二个并被第二个捕获catch

php exception-handling try-catch yii yii2

1
推荐指数
1
解决办法
2200
查看次数

在Yii 2的UrlManager规则集中使用RegEx

我正在尝试使用Yii 2's UrlManager设置规则,我知道您可以在要传递的参数中使用正则表达式,例如:

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'enableStrictParsing' => false,
    'rules' => [
        'foo/<id:\d+>/?' => 'foo/view',
    ],
],
Run Code Online (Sandbox Code Playgroud)

以上工作正常,甚至可选/的最终因为?.

但是,我想知道如果我想在规则中的其他地方使用RegEx,但是我不需要它作为参数传递.....例如.

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'enableStrictParsing' => false,
    'rules' => [
        'foo/([0-9a-zA-Z\-]+)\.<id:\d+>/?' => 'foo/view',
    ],
],
Run Code Online (Sandbox Code Playgroud)

以上不起作用.基本上我想支持URL,例如:

foo/some-name-123-end.99/
foo/some-name-123-end.99
Run Code Online (Sandbox Code Playgroud)

然后99(可以是任何数字)将作为id变量传递.

......或者我的RegEx有什么问题吗?

可以这样做吗?

php regex yii yii2

1
推荐指数
1
解决办法
5227
查看次数

如何设计一个带客户处理的安全购物车?

工作环境:PHP5面向对象,MVC模式,Yii框架

购物车:每种产品的数量和价格列表.运输车的作用只是将产品放入其中,如果用户想要购买物品,则:

  • 如果客人:注册/登录
  • 如果会员:购物车发送到验证控制器以验证/更新购物车,包括所有支付/运输选项(优惠券/账单地址,购物地址等)

购物车手柄:

  • 添加/删除产品
  • 在超时>清除自己

购物车不处理:

  • 折扣/优惠券
  • 所有付款和结算流程

问题是:如何设计它是高效和安全的?

选项1

创建一个sql表并存储:

  • 来自session_id()的PHPSESSID
  • ITEM_ID
  • 数量
  • 单价
  • datetime(每次更新购物车时刷新)

在mysql上创建一个事件,删除日期时间> 30分钟的每一行.

然后,为了获得购物车,您可以使用当前会话ID从表中获取所有项目,并创建一个foreach()来获取所有项目.

选项2

将所有购物车信息保存在cookie中


在我看来,选项1比选项2更安全但消耗更多的资源并且可能使SQL数据库暴露于攻击(创建溢出数据库的大量新会话).选项2暴露于cookie注入,但需要较少的资源并向用户公开信息.

还有其他/更好的方法吗?

php mysql security shopping-cart yii

1
推荐指数
1
解决办法
1621
查看次数

yii2 listdata转换自yii1.x

我怎样才能将以下内容转换为yii2

$dependency = new CDbCacheDependency('SELECT count(*) FROM job_title');
$jobTitle  = JobTitle ::model()->cache(CACHE_TIMEOUT,$dependency)->findAll($array);
$jobTitleList = CHtml::listData($jobTitle, 'job_title_id','desc');
return $jobTitleList;
Run Code Online (Sandbox Code Playgroud)

我有以下代码不起作用.

use yii\db\ActiveRecord;
use yii\helpers\ArrayHelper;
use yii\helpers\Html;

$items = array();
foreach (Jobsprocess::find()->where($array)->all() as $value) {
    $items[$value->process_id] = $value->jobsprocess;
}
return $items;
Run Code Online (Sandbox Code Playgroud)

yii html.dropdownlistfor yii2

1
推荐指数
1
解决办法
4131
查看次数

如何在Yii2中使用RESTful模型和控制器过滤记录

我正在使用Yii2创建RESTful API,并已按照快速入门教程*成功设置了名为Contacts的模型。我喜欢如何在不创建任何动作的情况下创建,列出,更新和删除记录。

但是我看不到如何过滤结果。我只想返回contact.user_id等于1的联系人(例如),因为它当前将回复所有记录。不创建动作就可以吗?

我也不确定如何限制结果。从我看过的内容来看,我觉得应该在URI后面加上?limit = 5。

php rest yii yii2

1
推荐指数
1
解决办法
3986
查看次数

如何从HumHub CMS页脚中删除"Powered by HumHub"?

我正在使用Humhub CMS作为新的社交网站.我已经安装好了,一切都很顺利.

但是,在登录/注册期间,页脚中有一个"Powered by HumHub"链接.我试图删除它,但找不到任何方法来摆脱它.Humhub由Yii框架开发.

有没有办法删除它?

php social-networking yii

1
推荐指数
1
解决办法
5098
查看次数

仅返回来自foreach的唯一值

我目前正在尝试使用foreach来使用我的事件模型中的关系返回所有地址.一切都很好,返回所有地址但会返回重复的结果.我尝试了array_unique,但不确定我的语法是否正确.

<?php  
    foreach ($data->events as $address) {
        //array_unique($address, SORT_REGULAR);
        echo $address->getAddressString() ."<br/> <br/>";
    }
  ?>
Run Code Online (Sandbox Code Playgroud)

php yii

1
推荐指数
1
解决办法
1万
查看次数

通过yii2 Html a()发送post parameteres

我正在尝试通过yii\bootstrap\Html发送参数.

echo Html::a('???????', ['/orders/order-create','freelancer_group'=>$_GET['freelancer_group']], ['class'=>'btn btn-lg btn-primary','data'=>['method' => 'post','derp'=>'herp'],]);
Run Code Online (Sandbox Code Playgroud)

但是,当我点击它仍然var_dump($_POST['derp']);NULL.我该如何发布?我在这里找到了它

php yii yii2

1
推荐指数
1
解决办法
4133
查看次数