标签: yii

Apache的x-sendfile替代方案,可以下载带有resume-support的大文件

我需要以编程方式使用PHP启动文件下载以及resume-support

这些文件很重.所以IO缓冲如下或缓存不是一种选择

$content=file_get_contents($file);
header("Content-type: application/octet-stream");
header('Content-Disposition: attachment; filename="' . basename($file) . '"');
header("Content-Length: ". filesize($file));
echo $content;
Run Code Online (Sandbox Code Playgroud)

到目前为止,我找到的唯一可行选项是Apache模块X-sendfile.不幸的是我们的托管服务不会安装mod_xsendfile- 所以我们正在寻找其他托管服务提供商,但这是另一个故事.

我们正在使用LAMP和yii框架.有哪些替代方案?

php apache yii

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

YII ::应用程序() - >用户> ID; 获取用户名而不是ID

我试图获得用户ID但到目前为止没有运气...

echo Yii::app()->user->id;

echo Yii::app()->user->getId();

返回奇怪的用户名.知道什么是错的吗?

yii

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

Yii渲染功能之间的区别

我有时会被三种渲染方法弄乱:

  • Controller::render()
  • Controller::renderPartial()
  • Controller::renderFile()

请你解释一下.谢谢!

render view partial yii

15
推荐指数
2
解决办法
9159
查看次数

"您无法直接访问此页面" - Hybrid Auth

我在AWS Elastic Beanstalk上托管我的PHP Yii应用程序,因此使用数据库来存储会话.我已经在共享托管环境中使用Hybridauth成功实现了facebook登录.当我在Elastic Beanstalk上登录facebook登录时会出错:

"You cannot access this page directly"
Run Code Online (Sandbox Code Playgroud)

该URL最终为:

http://mydomain.com/hybridauth/default/callback?hauth.start=Facebook&hauth.time=1393106016
Run Code Online (Sandbox Code Playgroud)

我从这里了解到,这与facebook回调应用程序但找到不同的会话有关.然后Endpoint.php抛出错误:

            # Init Hybrid_Auth
        try {
            // Check if Hybrid_Auth session already exist
            if ( ! isset( $_SESSION["HA::CONFIG"] ) ) { 
                header( "HTTP/1.0 404 Not Found" );
                die( "You cannot access this page directly." );
            }
Run Code Online (Sandbox Code Playgroud)

如何确保Facebook回拨同一会话并成功登录hybridauth?

php yii amazon-web-services hybridauth amazon-elastic-beanstalk

15
推荐指数
2
解决办法
9298
查看次数

我可以从js刷新Yii CGridView吗?

通过XHR提交"创建"模式对话框然后应刷新Yii CGridView中的行.

我试图通过在XHR"创建"操作中渲染新的gridview然后将其插入到页面中来实现这一点$("#list").html(response),但是渲染CGridView导致jQuery <script>包含标记被注册以包含,所以当我将这些标记引入到页面他们重新加载jQuery,它消灭了我的现场活动处理程序,所以一堆东西打破了.

让我思考的是,"GridView知道如何刷新自己.哎呀,它总是在排序或页面上做."

所以我可以从js中单击GridView中的一个排序按钮,但那不是理想的.我更愿意说

$("#list").gridview('reload')或$ .fn.gridview.reload("#list")或某种意义.

或者做一些很酷的事情,你刚才想到的那么简单.

php jquery yii

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

Yii间接修改重载属性

$winnerBid = Bids::model()->find($criteria);
Run Code Online (Sandbox Code Playgroud)

模型有下一个关系:

public function relations() {
        return array(
            'item' => array(self::BELONGS_TO, 'Goods', 'item_id'),
            'room' => array(self::BELONGS_TO, 'Rooms', 'room_id'),
            'seller' => array(self::BELONGS_TO, 'RoomPlayers', 'seller_id'),
            'buyer' => array(self::BELONGS_TO, 'RoomPlayers', 'buyer_id'),
        );
    }
Run Code Online (Sandbox Code Playgroud)

当我想保存时:

 $this->seller->current_item++;
    $this->seller->wins++;
    $this->seller->save();
Run Code Online (Sandbox Code Playgroud)

我收到错误:

间接修改超载属性投标:: $卖方无效(/var/www/auction/www/protected/models/Bids.php:16)

但是在另一台服务器上一切都很好吗?怎么解决?或者覆盖php指令?有任何想法吗?TNX

php activerecord yii

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

在Yii上创建小部件的步骤?

我在给定视图上有以下代码:

<?php
    $form = $this->beginWidget('CActiveForm', array(
        'id' => 'home-newsletter-form',
        'enableAjaxValidation' => false,
        'enableClientValidation' => true,
            ));

    echo $form->textField($newsletterSubscribeForm, 'email');
    echo $form->error($newsletterSubscribeForm, 'email');
    echo CHtml::link("subscribe", "#", array('class'=>'btSubscribe'));
    $this->endWidget(); 
?>
Run Code Online (Sandbox Code Playgroud)

碰巧我需要在MORE和一个视图上使用它,所以我发现一个小部件是一个更好的选择.但是我希望将它放在一个单独的文件上(在app/widgets /文件夹中),并在每个视图上调用.

任何人都可以请他告诉我我们应该遵循哪些步骤才能实现这一目标?

php yii

14
推荐指数
2
解决办法
4万
查看次数

如何使用Yii :: app() - > end()方法,它与exit()有什么不同?

在表单验证中,我找到了这样的代码

if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
    {
        echo CActiveForm::validate($model);
        Yii::app()->end();
    }
Run Code Online (Sandbox Code Playgroud)

手册说end()方法将终止应用程序.为什么要终止应用?以下代码不会执行?

php exit yii

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

Yii的会议

在这里,我正在做的是我正在使用

 Yii::app()->SESSION['userid']
Run Code Online (Sandbox Code Playgroud)

没有

  Yii::app()->session->open();
Run Code Online (Sandbox Code Playgroud)

在登录

  Yii::app()->session->destroy();
Run Code Online (Sandbox Code Playgroud)

在注销时

我想知道如果不开放和破坏会话是值得的.Yii是否在内部进行.

还有一件奇怪的事我不知道发生了什么.在同一个会话的浏览器中,我可以登录多个用户..这不应该发生.这就是我没有使用open和destroy会话方法.

 public function actionLogout()
{
    Yii::app()->user->logout();
    Yii::app()->session->clear();
    $this->redirect(Yii::app()->controller->module->returnLogoutUrl);
}
Run Code Online (Sandbox Code Playgroud)

请让我知道如何解决这个问题

php session yii

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

Yii2要求所有Controller和Action登录

在我的sitecontroller中,我这样写

    'access' => [
        'class' => AccessControl::className(),
        'rules' => [
            [
                'actions' => ['login', 'error'],
                'allow' => true,
            ],
            [
                'actions' => ['logout', 'index' ,'call-back'], // add all actions to take guest to login page
                'allow' => true,
                'roles' => ['@'],
            ],
        ],
    ],
Run Code Online (Sandbox Code Playgroud)

所以,如果我进行索引或回拨操作,我将重定向到登录页面.但我必须为每个控制器的所有动作做这件事.你能告诉我最好的办法吗?

php yii yii2

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