zhoupenghui
- zhoupenghui 回答了问题 日志文件没有权限的问题
vendor/yiisoft/yii2/log/FileTarget.php 文件中有个 $dirMode 属性,你在配置文件中设置一下这个属性试一试.它默认是0775
- zhoupenghui 赞了回答
首先,建一个MEMORY引擎的表
tbl_online
,字段分别为ip
,time
,当用户访问的时候,先判断此ip
是否存在于表tbl_online
,如果不存在,插入一条新记录,如果存在,更新time
。在线会员,可以把ip写成用户的id。
然后,写一个计划任务,每分钟执行一次。比如,咱们网站在线的定义为半小时访问过,所以计划任务会把time
在半小时之外的删除掉。其实MEMORY引擎已经很快了,可以看做是对内存的操作。当然如果换成
cache
会更好。 ?????
讲具体点,说得有点宽
先写需求,把需求分析写出来,每个需求的具体实现步骤,显示效果等等;
然后搭建环境,编写程序- zhoupenghui 回答了问题 yii2引入js先后顺序的问题?
js的放置位置默认在html结尾,可以在AppAsset中设置:
/** * @inheritdoc */ public $jsOptions = [ 'position' => View::POS_HEAD, ]; // 这是设置所有js放置的位置
也可以在视图中单独设置js文件的放置位置,eg:
$this->registerJsFile('js/ware/detail.js', ['depends' => ['frontend\assets\AppAsset'], 'position' => $this::POS_HEAD]);
你 user 的验证规则有没有问题?
$user->save(false);
这个试一试- zhoupenghui 赞了回答
public function rules() { return [ [['imageFile'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg'], ]; }
以后好好看文档 不看类文档吧 怎么也得看看基本文档吧!
- zhoupenghui 回复了 zhoupenghui 的回答
你看看这样行不行:
$goods= new Goods(); $attr=['name'=>'西门子','price'=>12,'brand'=>'TOTO']; $goods->setAttributes($attr); $goods->save();
@小程府 恩,
获取一条错误信息,获取所有错误信息,这样来吧:
$user = new User(); $user->attributes = Yii::$app->request->post(); if($user->validate()){ // 验证成功后的操作 } $error = []; $onlyOneError=[]; if ($user ->hasErrors()) { // 判断是否有错误 $onlyOneError = $user->getFirstError($attribute); //获取一条错误信息, $attribute里填要获取错误的属性 $tmp = $user ->getErrors(); // 获取所有错误信息 foreach ($tmp as $rows) { foreach ($rows as $row) { $error[] = $row; // 把错误信息放入数组中 } } } var_dump($onlyOneError,$error);