fly020212
- fly020212 评论了教程 yii2 多语言设置
语言信息 language 变量,放在 cookie 里面是不是会更好一些?
- fly020212 回复了话题 yii2 报错求助 表单方面的问题
把全部的错误堆栈发过来,这个错误,应该不是你 view 里面的这个
form->field
造成的 - fly020212 回答了问题 Yii2 的 Redis 操作问题
hash 数据的操作刚我们想象的不一样, 这么说吧,yii\redis\Connection 操作的 redis 的数据参数,没有数组,也没有数字的概念,只有字符串,Connection 是一个一个发送数据的,看 hmset 的参数说明
127.0.0.1:6379> help hmset HMSET key field value [field value ...] summary: Set multiple hash fields to multiple values since: 2.0.0 group: hash
所以
Yii::$app->redis->hmset('user:1',['name'=>'joe','solary'=>2000]);
其实应该是Yii::$app->redis->hmset('user:1', 'name', 'joe', 'solary', 2000);
这么调用的当然你也可以通过
Yii::$app->redis->executeCommand('HMSET', ['user:1', 'name', 'joe', 'solary', 2000])
这么调用 - fly020212 收藏了教程Yii2.0 设置组件类默认值
yii\rest\Controller 有定义了一个 behavior
/** * @inheritdoc */ public function behaviors() { return [ 'contentNegotiator' => [ 'class' => ContentNegotiator::className(), 'formats' => [ 'application/json' => Response::FORMAT_JSON, 'application/xml' => Response::FORMAT_XML, ], ], 'verbFilter' => [ 'class' => VerbFilter::className(), 'actions' => $this->verbs(), ], 'authenticator' => [ 'class' => CompositeAuth::className(), ], 'rateLimiter' => [ 'class' => RateLimiter::className(), ], ]; }
contentNegotiator
这个filter
会根据 客户端的Accept
请求头, 重设Response
的format
属性,yii\filters\ContentNegotiator
简单说就是 如果
Accept: application/xml
, 则format
会被设置为xml
,如果是Accept: application/json
会被设置为json
,你可以在web.php
里面设置一个默认值,请求的时候会根据Accept
请求头自动重设format
属性,你的应用可以自适应xml
,或者json
,或者,把这个filter
去掉,应用一直使用json
格式你的问题可能就是,应用发送了
Accept: application/xml
请求头,发送json
请求头就 ok 了400 错误
有可能是你的action方法有定义的参数,但是这里没有传
PHP Parse error: syntax error, unexpected '[' in /home/wwwroot/yii/init on line 75
php 版本的问题,yii2 最低要求 php5.4
generate backend/web/index.php ... generate frontend/web/index.php
这个不是已经生成入口文件了么?
- fly020212 回复了 RichardTian 的回答
main是主要渲染的layout,所以在每个视图几乎都会渲染到这个layout,那么你的方法就必须要能够让每个控制器都能继承到(或者能调用到),那么你可以在Controller定义一个方法,那么你在layout那里就可以用 $this->function(); 来获取你要的值了
不仅是 layout 里面, view.php 里面也是