谁一开始就是大神?

PHP 第2页

PHP

关于Yii2统一返回数据和公共查询条件问题[2.0]

NeoStag阅读(55)

Yii2 的话有两个问题一直不太明白,还望大牛们不吝赐教 。

  1. 数据的统一返回处理 。
    我现在的处理是每个模型写 fields 方法,
    但是这个规则 只有 findOnefindAll 有用 ,find()->where()这种就不行 。 是不是我理解的不对? 你们都是怎么做的?
    如有一个模型A 里面有 public function fields(){ return ["id"] ; }
    A::findOne() 返回的结果中只有id ,是想要的。
    A::find() 返回的是所有字段,不是想要的。

  2. 每次查询都带上一个固定的条件 。 需求是这样,表B中的所有数据是通过 user_id 来区分数据是哪个用户的,每次查询的时候都需要带上 user_id 这个条件,但是每个方法里面都写一下很累赘,有没有好的方法?

两个问题有同一个解决方法:
模型类 A:
AQuery:
使用方法:

GridView边框样式被覆盖[2.0]

Slynice阅读(56)

我使用gridview设置border=true,但是页面显示还是没有边框,debug发现adminlte的css是后加载的,把前边的样式给覆盖掉了,这个怎么解决呢QQ图片20180722214134.png
QQ图片20180722214141.png
QQ图片20180722214145.png

既然都找到原因了,把冲突的地方处理了不就行了。
方法很多。
可以把后面的样式删除。
可以尝试先加载后面那个样式。
可以另写一个样式名称,避免两个文件中的样式相互干扰。
……

Yii2save保存失败[2.0]

Newqueen阅读(56)

public function actionIndex()
{
    $session = Yii::$app->session;
    Yii::$app->response->format=Response::FORMAT_JSON;
    $model = new PostSendInfo();
//        $post = Yii::$app->request->post();
    $post=['company_name'=>'123','mobile_phone'=>12,'sender_dep'=>'2323'];
    if ($post) {
        $model->login_id = $session['login_id'];
        $model->case_id  = "1";
        $model->ems_id   = "2";
        $model->create_time = date('Y-m-d H:i:s',time());
        $model->setAttributes($post);
        if($model->save()){
            return "保存成功!";
        }
        return "保存失败!";

    }
    return "保存失败!";
}

$post 的值保存不成功

两个问题:
其实如果不嫌麻烦 可以提交数据时候 挨个去拦截 这样就能知道在哪有问题了 。反正我遇到坑人的问题时候就一直这样拦截 ,然后你基本就找到问题所在了,适用一部分bug,就我遇到的问题 可以解决90%
真费劲,官网看一遍教程就没这么个问题了,真是的。
这个 框架真是特别坏,总是偷着给你加一些奇怪特性,还没有任何提示

新手求Yii接入微信登录的实现思路[2.0]

Lisea阅读(59)

Yii自带的登录需要通过loginForm的数据验证,如何只通过access_token实现用户登录

http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
先理解上文。我再简说。能听懂几分看造化了。
用户访问www.xxx.com 系统先去判定是否有已经登陆过。可以是session等。
如果没有登陆就发起微信网页授权。授权成功后,微信会访问你指定的一个连接比如www.xxx.com/login?access=kdkdkdkdkdk
而这login就是处理登陆的东西。而拿到这个access后,所要做的东西,比如拿到openid等,那就看
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842
先看微信官方文档,再看 EasyWechat 这个轮子
官网:https://www.easywechat.com/
gayhub:https://github.com/overtrue/wechat
慕课网上有这个讲解的免费课程还可以:https://www.imooc.com/learn/491

api怎么设置options[2.0]

Candypony阅读(65)

前端使用Axios发送get或者post请求的时候,如果带上header的话,总是会先发出一个options请求,后端没有配置options,这样就报错了,应该怎么配置?

'patterns' => [
    '' => 'options'  // 这样似乎没效果
]

” => ‘options’不生效是因为设置了’controller’ => ‘v1/user’,这样,如果使用OPTIONS访问 v1/users/abc的时候。会报404,看来这是只针对当前users的url,并不支持users下边的比如users/abc这种路径的访问。
最终改为” => ‘options’
就你理解的我一一给你理下。看看你能理解多少
1.
” => ‘options’不生效是因为设置了’controller’ => ‘v1/user’这是错误的理解
” => ‘options’ 的意思是当前设置的controller空路由时他的options访问可以到哪个位置,相当于
options www.xxx.com/users 他options走的是actions里面的options独立方法
2.
如果使用OPTIONS访问 v1/users/abc的时候。会报404,
这是因为options 访问 www.xxx.com/user/abc 你是没有配置过任何options的,你可以在你的chrome的请求头部看到信息
你只要给他配置起来就行比如:我这里加点料,我怕你理解错,我加点。这个/user/abc他需要post请求那写法如下
‘POST abc’ => ‘abc’,
‘OPTIONS abc’ => ‘options
3.最终改为’《action》’ => ‘options’
说有问题是因为你统一了路由,这种写法,在与我们写路由来说,是不规范的,路由就是有什么写什么,最小化标准,会让你更快的定位问题。比如 www.xxx.com/users/12 这样你的options就又走不通了。是不是得’/’ => ‘options’了呢,不能说你写错,只能说你思想不对。就得’OPTIONS users/’ => ‘options’
一定要去看YII2他的路由创建原理是怎么实现的,看源代码
而你以上的理解错误是因为
你写在patterns里,他的意思是替换原有路由
patterns 或 extraPatterns 重新定义现有的模式或添加此规则支持的新模式
http://www.yiichina.com/doc/api/2.0/yii-filters-cors
看看这里介绍,希望能帮到你
楼主的 基类 behaviors方法里 是怎么配置的?
认证 是每个控制器 都要配置一个behaviors方法吗?

关于源码里的model有个不懂的地方[2.0]

CandyStone阅读(50)

在\vendor\yiisoft\yii2\base\Model.php里的

public function offsetSet($offset, $item)
{
    $this->$offset = $item;
}

这个方法我看不懂在哪调用的,用debug也找不出来,求解这是如何实现的,该怎么看

model 实现了ArrayAccess接口,这个方法是ArrayAccess接口提供的链接参考
理解成类的方法赋值就好了

API接口开发中如果只有接口需要RBAC权限管理,后台不需要,该如实现呢[2.0]

Oldbubble阅读(54)

魏曦教你学 – Yii2 RESTful API 开发中 第6讲与第7讲中,API用户与后台管理用户的认证与授权,所有用户信息表都是在同一张表中的。

问题1:如何把一张表拆分成两张表,API用户 与 后台管理员用户想拆分成两张表,API用户一张表,后台管理员一张表,如何实现

问题2: 如何分别实现,API接口用户,和 后台管理员用户 的认证与权限管理二相互不干扰,不想在同一张表中

两个问题似乎是同一个想法

1、这个干嘛要弄两张表?你给用户分配不同的权限来控制用户访问行为;或者给用户分组,不同的组有不同的权限。
2、每个方法都是可以配置访问权限,每个用户可以有不同的权限。
不关几张表的事情,只需要定义好每个角色的权限,api的身份识别做好,就足够了,后台不需要 就管理员角色就可以了 权限分配好
一切皆文件,就好比从A点到B点。可以产生出100种方法,怎么走,完全看喜好。
理解原理,理解A点到B点他不管所经过多少节点,他终归为一进一出。 一切皆虚浮。啊米拖佛。
加油,你想怎么搞都可以
需要验证权限的接口直接给个字段判断下不就可以了

Excel导出表格怎样设置表格的宽度

momoelephant阅读(54)

2018-04-10_110551.png
怎样能把图中的标题设置宽点

$sheet->getColumnDimension($column)->setWidth(20);
//设置列宽
$objPHPExcel = new \PHPExcel();
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);

想要哪列宽度设置都行,自由选择

登录

找回密码

注册