标签: yii

何时使用组件以及何时在Yii中使用扩展?

我对protected /中的组件和扩展文件夹的目的有点困惑

请澄清.

yii yii-components yii-extensions

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

Emberjs,服务器端与客户端,全部在?

我一直在研究Ember.js,它看起来真的很棒,但有一点让我担心,而且我无法理解它,如果我开始在已经运行的项目中使用它.

我最终是否必须移动客户端的所有内容,并在某些时候使我的应用程序成为单页应用程序?

让我澄清一下......

到目前为止,使用Ember在客户端和服务器之间进行通信的最佳方式是REST.这看起来很棒,但我不喜欢的是第一次加载所有模板.并将我服务器中的所有逻辑移动到客户端(或者我得到了所有这些错误?),因为看起来我的服务器端将成为无逻辑的REST API.

此外,我正在使用Yii Framework,它有一些JavaScript(支持Ajax)组件,如网格.如何在导航中使用ember与所有这些进行交互,而无需重写已经在我的应用程序上工作的一堆东西?

我在登录页面(或状态),然后在登录后,我必须显示一个网格,这对Yii来说很简单,并且整页加载,但如果我使用的是Ember,我怎么能拥有我的网格显示通常会如何?我是否必须预先加载网格的车把模板,以及控制它的JavaScript?

javascript php rest yii ember.js

23
推荐指数
2
解决办法
1972
查看次数

带链接的yii2按钮

我正在尝试设置一个带有视图链接的按钮.但是yii\bootstrap\Button没有属性'url'.我宁愿使用yii应该只使用平坦的PHP.下面的代码将是理想的情况,但由于"url"选项不存在,是否有其他方法可以使用yii解决此问题?

echo Button::Widget([
    'label' => 'label',
    'options' => ['class' => 'btn btn-primary'],
    'url' => Url::toRoute(['/controller/action']),
]);
Run Code Online (Sandbox Code Playgroud)

php yii yii2 yii-widgets

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

Yii2:如何使用orWhere in和Where

我想用yii2搜索模型创建这个查询

select * from t1 where (title = 'keyword' or content = 'keyword') AND 
                       (category_id = 10 or term_id = 10 )
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使用orFilterWhereandFilterWhere.

我在搜索模型中的代码:

public function search($params) {
   $query = App::find();

   //...

   if ($this->keyword) { 
        $query->orFilterWhere(['like', 'keyword', $this->keyword])
              ->orFilterWhere(['like', 'content', $this->keyword])
   }
   if ($this->cat) {
        $query->orFilterWhere(['category_id'=> $this->cat])
              ->orFilterWhere(['term_id'=> $this->cat])
   }

   //...
}
Run Code Online (Sandbox Code Playgroud)

但它创建了这个查询:

select * from t1 where title = 'keyword' or content = 'keyword' or 
                       category_id = 10 or term_id = 10
Run Code Online (Sandbox Code Playgroud)

yii yii2

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

OpenId支持Yii

我想在Yii中使用OpenID支持.

在研究了可能的插件之后,我找到了这两个插件.一个用于OpenidSelector,另一个用于LightOpenId

http://www.yiiframework.com/extension/simpleopenidselector/

http://www.yiiframework.com/extension/loid

这些是在Yii中用于OpenId支持的正确扩展吗?还要别的吗?如果这些扩展是正确的,我想了解如何处理这些扩展.

这是我认为我需要按照页面上的说明安装它们.

  1. 创建OpenIdUserIdentity扩展CUserIdentity并将authenticate()代码放在那里
  2. 创建一个登录页面并将simpleopenidselector代码放在视图中.
  3. 在siteController中创建一个actionOpenIdLogin方法

然后我有点迷失,因为我不理解Loid中的Usage样本,我不知道如何做(1)和(3).

如果我走在正确的轨道上并且可能提供一些指导,请告诉我.谢谢.

openid openid-selector yii lightopenid

22
推荐指数
2
解决办法
2974
查看次数

Yii:使用与控制器布局不同的布局渲染动作

在Yii中,有没有办法使用layout与控制器定义的不同的动作来渲染单个动作?我有一个动作,我想格式化不同于其余的,并且从文档中不清楚是否可能.

php model-view-controller yii

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

Yii用户在15-30分钟后退出,尽管会话超时设置为至少1天

我在下面列出了Yii配置文件的相关部分:

return array(
...
    'components'=>array(
        'session' => array(
            'timeout' => 86400,
        ),
        'user'=>array(
            'allowAutoLogin' => true,
            'autoRenewCookie' => true,
            'authTimeout' => 31557600,
        ),
    ...
    ),
...
);
Run Code Online (Sandbox Code Playgroud)

我也进入了php.ini并设置session.gc_maxlifetime = 86400但是这仍然没有解决问题.

目前,我绝对不知道还有什么可能导致它超时并在大约15-30分钟不活动后将用户退出.理想情况下,用户应保持登录状态至少一天不活动(除了关闭浏览器窗口,允许浏览器首选项).

我已经拖网了谷歌,Yii和堆栈溢出,只是找不到我忽略的任何东西......但显然我忽略了一些东西.如果有人能帮助我,我会非常感激.


我们要求提供用于登录用户的典型代码示例,其中包含以下内容:

$identity = new UserIdentity('facebook', $id, $user->name, $user->email);
$loggedIn = Yii::app()->user->login($identity);
$this->subscriptionChecker->updateCurrentUserSubscribed();
Run Code Online (Sandbox Code Playgroud)

这在任何时候Yii::app()->user->login()被称为非常典型


在Chrome中,以下是我为该网站提供的Cookie及其到期日期(清除所有Cookie并仅登录后):

PHPSESSID expires When the browsing session ends

// I'm informed these are set by google analytics  
__utma created Friday, 12 October 2012 14:05:31 expires Sunday, 12 October 2014 14:05:31

__utmb …
Run Code Online (Sandbox Code Playgroud)

php cookies session session-timeout yii

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

PHP框架(CodeIgniter,Yii,CakePHP)与Django

我必须开发一个每天必须容纳大约2000个用户的站点,速度是它的标准.此外,该站点是一个面向用户的站点,用户可以登录并查看他的个人资料,注册他/她想要参与的特定事件.该站点将托管在VPS服务器上.虽然我很漂亮有python和PHP的良好经验,但我不知道如何使用任何一个框架.我们有足够的时间来试验和学习上述框架之一.请注意,考虑到网站的速度,功能和安全性,请考虑哪种方案适合这种情况.

谢谢,niting

python django cakephp web-frameworks yii

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

Yii:除一个场景外总是适用的验证规则

我知道您可以拥有仅适用于一种情况的验证规则:

array('username', 'exist', 'on' => 'update'),
Run Code Online (Sandbox Code Playgroud)

现在我想知道是否可以做相反的事情:除了给定的场景之外每次都适用的规则?

现在看到的唯一解决方案是列出所有其他方案,但如果我们稍后需要添加一些新闻方案,那就不太好了.

array('username', 'exist', 'on' => array('create', 'search', ...),//all the scenarios except update
Run Code Online (Sandbox Code Playgroud)

php validation model yii yii-validation

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

使用令牌实现RESTful API身份验证(Yii/Yii2)

我正在Yii 1.x中构建一个API,它将与移动应用程序一起使用.部分过程涉及使用以下JSON请求登录(使用用户名和密码): -

//使用用户名和密码发送的请求

{
"request" : {
    "model" : {
        "username" : "bobbysmith",
        "password" : "mystrongpassword"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

//如果成功登录,则返回以下响应

{
"response": {
    "code": 200,
    "message": "OK",
    "model": {
        "timestamp": 1408109484,
        "token": "633uq4t0qdtd1mdllnv2h1vs32"
    }
 }
}
Run Code Online (Sandbox Code Playgroud)

此令牌非常重要 - 一旦用户登录应用程序,我希望他们可以访问要求他们登录的其他页面.我希望移动应用程序存储此令牌,如果相同的633uq4t0qdtd1mdllnv2h1vs32令牌是在任何后续请求中发现它将接受此作为经过身份验证的请求(对于此用户'bobbysmith').

我有点不确定如何最好地做到这一点,我做了一些研究,oAuth已被提及几次,以及通过HTTPS的基本身份验证.

所以简而言之......

  1. 在移动应用主页上,用户使用其用户名和密码正确登录,并向API发送请求.
  2. 这将返回一个成功的响应(如上所示),其中包含当前时间戳和所有重要令牌.
  3. 同样的用户进入到另一个应用程序页面/图,其中该令牌是)要求和b)如果它匹配了这个认证用户(例如,这样他们就可以编辑该帐户等.)
  4. 一旦用户点击"注销",该令牌就会被删除(并且可以更长时间访问我的帐户等) - 基本上是基于令牌的身份验证系统.

任何人都可以解释实现这一目标的最佳方法吗?如果我所说的内容不是100%明确的,请告诉我,我会提供更多信息.

当我使用PHP时,Yii 1.x解决方案是理想的,因为这是使用当前API构建的.

概括地说,该应用可确保到服务器的每个请求包括在所述有效载荷或报头,以便此令牌可以被检索令牌随后的后,一旦退出该令牌被简单地移除或设置为空/空

php rest restful-authentication yii access-token

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