谁一开始就是大神?

PHP 第110页

PHP

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

Markdear阅读(28)

在控制器中和在模板中得到当前的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阅读(28)

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阅读(32)

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

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

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

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

JimCherry阅读(31)

我在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阅读(30)

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

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

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

acgKeo阅读(34)

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

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

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

Oldseagull阅读(33)

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

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

ActiveForm的get方式刷新url的问题

dmapple阅读(31)

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

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

Yii2.0加载自己的class

LiEagle阅读(28)

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 有大概的了解

gii没有找到

OldJames阅读(26)

按照指南:
$config = [ … ];

if (YII_ENV_DEV) {

$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = 'yii\gii\Module';

}
这段配置的意思是如果当前是开发环境,应用会包含 gii 模块,模块类是 [[yii\gii\Module]]。

如果你检查应用的入口脚本 web/index.php,将看到这行代码将 YII_ENV_DEV 设为 true:

复制代码defined(‘YII_ENV’) or define(‘YII_ENV’, ‘dev’);
代码设置应用处于开发模式下,按照上面的配置会打开 Gii 模块。你可以直接通过 URL 访问 Gii:
http://hostname/index.php?r=gii

可是
Not Found (#404)
Unable to resolve the request “gii”.

gii和debug模块,默认只在localhost下生效,配置一下允许的ip就可以了。
变量名字都不一样。。
在入口文件index.php,找到“defined(‘YII_ENV’) or define(‘YII_ENV’, ‘dev’);”
在它下面重新定义。defined(‘YII_ENV_DEV ‘) or define(‘YII_ENV_DEV ‘, ‘true’);
前提是:ip地址是127.0.0.1或者localhost。要不然就在web.php增加允许的ip地址也可以。

登录

找回密码

注册