谁一开始就是大神?

PHP 第77页

PHP

HowtouseobjectoftypeClassNameasarray[2.0]

Hazellove阅读(74)

想請教

class model {
    public $que ;
}

$model = new model();
$model['que'] = 'xxx';               // not working 型別不對
$model->que = 'abc';

但是 yii 的 $model = new $model();
$model['que'] = 'xxx';               // 卻可以 到底怎麼做到的!!

有人可以幫我解惑嗎~~ yii 他是怎麼處理的

The tricker is ArrayAccess.
You can try the following:

IdentityInterface里的authkey的一些问题[2.0]

LvyEagle阅读(70)

  1. 请教一下各位,IdentityInterface里的authkey作用是什么?
  2. 按照权威指南上的做法,我需要在实现IdentityInterface接口的表中添加authkey字段吗?
  3. getauthkey()直接返回表中的id而非权威手册中的随机字符这样可以吗?
  4. 如下代码有什么问题吗?
     public function getAuthKey()
     {
         return $this->id;
     }
     public function validateAuthKey($authKey)
     {
         return $this->authKey === $authKey;
     }
    

1.按照权威指南解释:yii\web\IdentityInterface::getAuthKey():获取基于 cookie 登录时使用的认证密钥。 认证密钥储存在 cookie 里并且将来会与服务端的版本进行比较以确保 cookie的有效性。具体引用位置在yii\web\user里面loginByCookie方法。
2.需要在你的用户表里面添加这一个字段。
3.直接返回id肯定是会出问题的,就比如你validateAuthKey()的时候就会出错,除非你authkey字段存的就是id的值。所以尽量是存的时候就用Yii::$app->security->generateRandomString()获取随机字符。
4.getAuthKey(),应该返回AuthKey。

关于csrf的问题[2.0]

Bravesea阅读(73)

在YII2 里面,不论是 get 还是 post,都对进行csrf验证,现在,我遇到的问题是,从接口返回的数据不携带上传过去的csrf验证,这种情况下,如何设置csrf的验证,关闭或者是怎么办?

可以在控制器里加一行:
从接口返回的数据,是指第三方异步调用你提供的restFulapi回调服务么?我这边也做过类似这种,场景是微信公众号的回调接口,当用户给公众号发消息的时候,微信服务器会自动往我提供的回调接口推送消息。我是直接针对这个action关闭掉csrf验证。具体就是设置controller::enableCsrfValidation 为false,这样,某个controller访问时,就不会做csrf验证了。
关闭单个action的csrf验证就行了。
在action中添加
原来的贴的方法不是2.0的。
如果要所有的都关闭,可以配置全局(不建议)
可以那个控制器需要配置哪一个!
楼上的 public $enableCsrfValidation = false; 就可以!
在方法里添加$this->enableCsrfValidation = false;
123456

请教大家php中的常量义与获取等问题[2.0]

JasonLion阅读(71)

大家好,请问各位都是如何解决下面这个需求的。

比如 有model类user。其中定义常量

const ADMIN = 0; //管理
const USER = 1; //用户
const CLIENT = 2; //客户

实际数据库存储的时候 肯定是 0、1、2的值了。

但是在页面上显示的时候,需要的是 管理、用户、客户

请问各位是如何快速、优雅的 获取这些汉字内容的呢?

if(1) echo 用户
if(2) echo 客户
……
在user model里写个专门的方法
然后,在common/config/params.php里增加constants项:
在Model类(User)里可以增加一个配置索引项与constants中的内容关联:
这样,在业务代码中要获取id对应的字面就可以这样:

kindeditor怎么设置默认值呢[2.0]

HaHtom阅读(61)

<?php echo $form->field($model,'content')->widget('pjkui\kindeditor\KindEditor',['clientOptions' => ['width'=>'90%']);?>

已经调出kindeditor,默认值该怎么写呢

设置$model->content='这里设置默认值就可以吧?'
或则你直接在规则里面写也可以的
能给出代码吗?

hasMany与hasOne前台怎样调用[2.0]

GraceStag阅读(71)

如题

我有两个表,一个order,一个customer,
customer:

public function getOrders()
{
return $this->hasMany(Order::className(), ['customer_id'=>'id']);
}

order:

public funciton getCustomer()
{
return $this->hasOne(Customer::className(), ['id'=>'customer_id']);
}

我想生成的数据应该是数组形式,那我在前台用:

<?php echo $orders['id']; ?>

应该可以啊,但为什么老是提示:“Undefined index: id”

你應該先var_dump models 看看內容是甚麼!!
hasMany : 一對多 => 一個客戶可以有很多訂單
hasOne : 一對一 => 一個訂單只能有一個客戶
把兩張 table join 起來:
首先:需要用<?php echo $orders->id; ?>取值。因为取出的是类,不是数组。类属性获取用->
其次,获取数组形式的方式有两种,一种是在查询的时候,例如customer::find()->where($where)->with('order')->asArray()->all();返回的是数组形式,一种是获取了之后再转成数组,例如$customer = customer::findOne($where);$order = $customer->order;$orderArr = $order->toArray();
$orderArr = $order->toArray(); 最后这个toArray() 提示不识别呀

Yii2做站点的过程是怎样的?[2.0]

Ellietom阅读(60)

想规范下用Yii2做站点的流程。请各位赐教。
就以普通的站点为例,有前台有后台。前台主要展示信息,后台主要管理。需要先干什么再做什么,这个流程想规范下。

首页下载yii2
然后编写代码
最下发布网站
先确定业务逻辑,一般先做后台再做前台。这样开发比较快
我觉得最好的方法就是下载一个小型的项目源码,然后从入口文件按流程看着走,一遍下来,我觉得应该 不离十了,就差实践了!

在实例化一个类时,并传入一个数组,请问键名和键值分别表示什么?或则分别有什么含义?[2.0]

momoKeo阅读(62)

$model = new User(['scenario' => 'login']);

这句话中,scenario代表什么?login代表什么?新手求解答!!谢谢!!

scenario:场景
login:自定义的场景名称。
[‘scenario’ => ‘login’]:意思就是实例化的时候,把场景设置成login。
用途:根据场景,进行不同的操作,比如在login场景下rules规则做什么验证,是否能插入,更新,删除等。
再具体例子:比如我们定义login为登录场景,那么我们可以设置这个user实例化后,只是做登录验证,rules验证用户名密码匹配,只做查询,不能更新和删除。再定义signup为注册场景,那么rules验证用户名是否可用,密码是否符合等,然后做插入操作。这些都可以根据场景区分。

登录

找回密码

注册