谁一开始就是大神?

PHP 第107页

PHP

请教关于国际化默认路径的问题。[2.0]

Graceseagull阅读(72)

大家好。
我在做翻译文档的时候有点疑问,还请大家帮助,谢谢。
官方手册中有这么一句

Instead of configuring fileMap you can rely on convention which is BasePath/messages/LanguageID/CategoryName.php.

依靠BasePath/messages/LanguageID/CategoryName.php 这样约定好的翻译文件格式可省略配置 fileMap

我使用的是yii2.0.3 高级程序模板
common目录下,有目录messages/zh-CN/common.php 其中有数组 'id' => '编号'
程序中我使用

<?=  yii::t('common', 'id') ?>

但是不输出汉字内容内容。如下是我common/config.php中关于国际化的配置内容

'i18n' => [
            'translations' => [
                '*' => [
                    'class' => 'yii\i18n\PhpMessageSource',
                ],
            ],
        ],

还请大家看看,为什么是不是我的目录结构或者文件名称 还是没有符合默认规则。 请问大家 如何解决?

求个yii2数据缓存示例[2.0]

Honeyslim阅读(71)

要用哪个缓存组件,怎么使用,我看了下指南,但弄不了。

首先配置一下缓存,自己选择是用文件缓存还是数据库缓存等。
然后就可以通过 Yii::$app->cache->set()Yii::$app->cache->get() 设置、获取缓存内容了。
下面是一个带缓存依赖的实例:

如何在activeform中一行显示多个field[2.0]

Aibylemon阅读(79)

如何在activeform中一行显示多个field,自动生成的都是一行一个

<?= $form->field($model, 'kf_jiaoda')->textInput() ?>

<?= $form->field($model, 'kf_yanzhong')->textInput() ?>

<?= $form->field($model, 'kf_hongxian')->textInput() ?>

这个和activeform没有任何关系。。。和你的布局有关,这两行不过是生成input的html tag而已。因为yii是用的bootstrap作为前端,你可以看看bootstrap的布局就很容易解决(http://getbootstrap.com/css/#grid),建议系统的学习一下bootstrap。
ok,如何解决你的问题,以yii-basic中的contact.php的那个表单来说:
`
忘记说了,上面的修改让name和email在同一行了,其余代码没修改。
另外,其实contact.php中那个输入验证码本来就是同一行的,其也是一个道理,就是bootstrap的布局的结果。

yii2advancedinit时候选择dev跟pro有什么区别?[2.0]

NiceKeo阅读(77)

我试了下,好像没有什么区别啊?

除了以上区别,还有环境配置相关的区别:
\environments 下存放了2个目录和一个文件,你可以分别配置开发环境和生产环境,在本地就选dev,线上就选prod,这样就可以实现本地和线上无痛切换了。当然,你也可以通过 -local.php 来实现。你没发现有区别是因为你没有配置不同环境的不同配置。
入口文件有区别:
dev的入口文件代码
prod的入口文件代码
在本地就选dev,线上就选prod

怎么在服务端向mobile的客户端推送消息?[2.0]

lionlemon阅读(71)

有没有谁在yii下用过推送?

和YII无关,也许你需要百度 极光推送、个推、友盟这些第三方服务商。
如果你希望向APPLE发送APNS推送,那么只需要遵循规范,然后CURL即可。
长连接?SOCKET?可以倒是可以,但是你确定?

在DetailView中如何自义为自己想要的样式?[2.0]

Ellieapple阅读(77)

用Gii直接生成的视图文件里:

<?= DetailView::widget([
    'model' => $model,
    'attributes' => [
        'uid',
        ['label'=>'gender','value'=>$model->getGenderText()],
    ],
]) ?>

这里面输出的HTML怎么自定义或修改样式?

研究了一下Yii2.0源码,找到了答案,给大家分享如下:
DetailView可以自由定义样式
输出后的HTML为:
其它具体参数,可以参考【yii\widgets\DetailView
不错,感谢分享~~~
内容呈网格状···咋弄··

用Yii的企业多吗?感觉很少啊。想找一书籍,在大淘宝上居然搜不到。[2.0]

Wendyseagull阅读(81)

毕业论文打算用YII做个网站,看到有人介绍这边书《应用Yii1.1和PHP5进行敏捷Web开发》发现淘宝居然没有,甚至其他书籍也没。。

yii1的书,http://www.yiibook.com/ 有下载。
yii2的书只有英文的。可以到http://it-ebooks.info/search/?q=yii&type=title 这里下载。
Baidu Tencent都有使用的.
Sina, jumei, xiaomi 也都有使用的。

Yii中出现“<?=...?>”是什么意思?[2.0]

Fionapony阅读(79)

Yii 中出现的“<?=” 是什么意思啊?比如下段代码

<?= Breadcrumbs::widget([
    'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [],
]) ?>

这时php的标签,和<?php ?>一样的。用<?= ?> 就不用echo,否则你要输出的话,需要加上echo词汇输出。
这个就是用在模板里面方便点。
这个不是php语法么?是php的一种输出格式
楼上的回答太美妙了,赞一个
其实建议你用最标准的<?php ?>这样大家都能看懂,新手也不会有这个问题了
最好用标准格式
这样的方式是必须开PHP扩展才可以实现的,向下不一定会兼容
我的觉得yii2 对 <?= 进行了处理,并不像上面说的那样是php的语法,在输出widget时,将<?= 换成 <?php 试试?

Yii2.0控制器的behaviors[2.0]

foreverapple阅读(79)

class CustomController extends ActiveController
{
    public $modelClass = 'app\models\Custom';
    // public $serializer = [
    //     'class' => 'yii\rest\Serializer',
    //     'collectionEnvelope' => 'items',
    // ];

    public function behaviors()
	{
	    return ArrayHelper::merge(parent::behaviors(), [
	        'authenticator' => [
	            'class' => QueryParamAuth::className(),
	        ],
	        'rateLimiter' => [
	            'class' => RateLimiter::className(),
	            'enableRateLimitHeaders' => false,
	        ],
	    ]);
	}

}

源代码中,控制器的behaviors是在哪里处理的?
比如说:QueryParamAuth对象是在哪里实例化的?并且调用了authenticator()方法。

你给的例子,其实不能完全说明 behaviors 的行为,这里是 filter 的行为,但 filteryii2yii 中的实现不一样,yii2 中的 filter 是特殊的 behavior ,被框架多加了一层的处理,这里我只说明下 filter 的调用, 普通的 behavior 我暂时还没有用到,不清楚
一句话,QueryParamAuthauthenticator() 方法,是在 Controller 调用 beforeAction 时触发的,你可以在 Controller 复写 beforeAction 方法为空操作,看看还会不会调用。
在底层的 Controller 中,beforeAction 执行了 $this->trigger(self::EVENT_BEFORE_ACTION, $event) 触发了 EVENT_BEFORE_ACTION 事件,在 yii\base\Componenttrigger 会首先 ensureBehaviors(),把 behaviors() 定义的行为附加到 Controller
}
QueryParamAuth 最终继承自 ActionFilter 的,来看看 ActionFilterattach 时会做什么
会在 Controller 上绑定一个 EVENT_BEFORE_ACTION 事件,行为是执行自己的 beforeFilter 方法
到这里,你看到了,ActionFilter 最终会执行自己的 beforeAction 方法,当然这可不是 Controller 中的 beforeAction 方法,还会处理些前置check,如 exceptonly 检测,这个 beforeAction 正是你写 filter 时需要复写的一个方法,至于 QueryParamAuthauthenticator() 方法,自己可以接着走代码
入口是 ControllerbeforeAction 方法,可以自己走一遍源代码,就这些

登录

找回密码

注册