谁一开始就是大神?

PHP 第110页

PHP

yii2中某个方法怎么实现get、post都可以访问

JimCherry阅读(71)

我在yii2中有个api方法,我希望get、post方法都可以访问。
下面是我的操作方法,get请求没问题,post请求400错误。

public function behaviors()
    {
        return [
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'api' => ['get', 'post'],
                    'index' => ['get', 'post'],
                ],
            ],
        ];
    }

public function actionApi()
    {
        return 'hello world';
    }

@范·迪塞尔,感谢群里的这位兄弟
请问楼主 我也在做微信开发 在微信接口测试时都显示请求失败 csrf机制对微信平台发过来的请求有限制吗 怎么解决?
朋友 你这个怎么解决的啊? 我在做restful api时也遇到这个问题.

关于gridview排序的问题

MarkStone阅读(65)

使用gridview如果直接默认配置可以对每列排序,但是当自定义配置时,即使设置’enableSorting’ => ‘true’也无法排序,有人知道为什么吗?

问题解决了,在定义gridview中的datacolumn时,设置attribute属性就好,注意不要设置header属性。
不同的数据提供器(dataprovider)有不同的定义。ActiveDataProvider默认就可以排序,SqlDataProviderArrayDataProvider都需要自己定义

2.0中如何取得当前的控制器和方法[2.0]

Markdear阅读(65)

在控制器中和在模板中得到当前的controller和action,应该怎么写

网上的写法全是1.x版的,放在2.0版本中不正确

在 控制器 里面
在 视图 里面
详见: http://blog.sina.com.cn/s/blog_88a65c1b0101j6aa.html
在 控制器 里面 var_dump($this->id, $this->action->id);
在 视图 里面 var_dump($this->context->id, $this->context->action->id);
这两种方法在视图里获取控制器名称为什么都带了模块名:admin/tag
我的模块是 admin,控制器是 tag
请问如何正确获取到 tag

请问如何根据页面加载不同的前端资源呢

Beetom阅读(63)

views/layouts/main.php中有一句<?php $this->endBody() ?>可以加载一些默认的前端资源,但是如何可以在不同的views/site/下面的页面中加载不同的资源呢。
我试着在view/site/下的自定义页面末尾加载了一些基于jquery的js代码,但是因为jquery本身的引用是在views/layouts/main.php的<?php $this->endBody() ?>中,而句会出现在我自己写的js之后,导致提示$未定义。
请问有什么完善的解决方法吗?

<?php
?>

GridView显示字段多个值中的一个

littleyak阅读(71)

用GridView来生成表格时有一个column如:country_id是国家编号,在表格中我想显示对应的国家名称。国家全在变量$countries中。那country_id该怎么弄呢?
GridView::widget([

     'dataProvider' => $dataProvider,
     'columns' => [
           ...
          [ 'attribute' => 'country_id'],
           ...
     ],
 ]); 

已经解决了这个要做关联查询的
[

单选按键,下拉框创建及默认选择某个值

acgKeo阅读(76)

单选按键,下拉框创建及默认选择某个值,怎么写

比如要选择国家的一个下拉列表:
controller代码:
vew代码
这只是单独生成一个下拉列表
大致就是这样了
还有就是形成一个整的表单(用yii\widgets\ActiveForm):
controller差不多。view代码如下
有更简单的办法看小伙儿教程yii2.0 下拉菜单默认值

初学yii,可否使用vim,xdebug调试

Oldseagull阅读(74)

有没有大神使用vim+xdebug调试yii框架下的php程序啊?
关于调试一般的Php网页,vim+xdebug的调试方法网上一大堆,而且我也配置好了,可以调试单个网页的。但是调试yii里面的代码完全没有意义了。那个加入XDEBUG_SESSION_DEBUG=1的方法,在yii里面跳转来跳转去的,不可能每次都在浏览器里面输入。有没有解决的。求帮助。谢谢啦。

可以XDEBUG,。。。。。。。。。。
yii的应用模板里已经提供了调试工具啊,用这个不就够了吗
可以XDEBUG,。。。。。。。。。。

限制图片访问权限如何设置?

Jadehappy阅读(70)

在./protected文件夹,通过浏览器是无法访问里面的内容的。每个用户都可以把自己的照片上传到网站,为了可以显示照片,我把照片都放到./protected外部的文件夹了,这样以来其他人在浏览器输入地址也可以看到所有照片了,而我只希望用户自己可以看到自己的照片。把照片放在./protected里面,但是却无法显示照片,有哪位大婶知道办法没?万分感谢。

把图片上传到不是公开的目录然后用PHP动态输出
$imgpath = “图片路径”
$info=getimagesize($imgpath);
$imgdata=fread(fopen($imgpath,’rb’),filesize($imgpath));
header(“content-type:”.$info[‘mime’]);
echo $imgdata;

ActiveForm的get方式刷新url的问题

dmapple阅读(65)

我在使用ActiveForm控件的get方式做了一个搜索功能。
搜索一个关键字后url会变为domain/?key=aaa。
再搜索一个关键字后url会变为domain/?key=aaa&key=bbb。
虽然不影响使用,但是怎么样在第二次搜索时把那个aaa去掉呢。

已解决,是因为没有自定义action,而默认action是当前url才导致上边的问题……

Yii2.0加载自己的class

LiEagle阅读(63)

app 项目目录

把自己写的类 放在 app/vendor/class/ 下面,在控制器中实例化到时候提示 class不存在。

配置文件中是这样写的

<?php
$params = require(__DIR__ . '/params.php');
$config = [
    'id' => 'app',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],

    'aliases' => [
        '@class' => '@vendor/class',
    ],
    ......
?>

改如何解决, 求高手给个能用的实例。。

首先,要明白 vendor 目录的含义,这个目录基本是放第三方类库的,yii 框架放在这里,你使用的 github 上的类库通过 composer 安装的也放在这里,但,你的产品代码,是不需要放在这里的,也不应该放在这里
第二,虽然,我们的代码用了 namespace app\XXX\XXX 定义 namespace,但是,这个 app 目录对应的就是 'basePath' => dirname(__DIR__), 目录,namespace app\vendor\class 对应的是 basePath/vendor/class 目录,当然,不应该放在 vendor 目录下
举个例子
namespace app\models 是目录 basePath/models
这个 User 的 类名,是 \app\models\User, 文件是 basePath/models/User.php
最后,以上的前提是,你对 php 的 namespace 有大概的了解

登录

找回密码

注册