jackz
- jackz 回答了问题 如何在find()后将时间戳转换成日期格式
文档中貌似有种做法是这样的,但是要求不能使用asArray() queryBuilder,如下
//in User public function getFormattedTime(){//具体的名字自己想啦 return Yii::$app->formatter->asDatetime($this->updated_at);//created_at等 } //in View //假设此时拿出一篇文章 echo $post->formattedTime;//格式化的事件 //假设此时多篇文章 foreach($posts as $post){ echo $post->formattedTime; }
上面的方式可以避免在view中格式化数据,实现复用,如果考虑model职责混乱,考虑将这些代码封装到行为中去。
} catch(Exception $e) { $transaction->rollback(); }
catch里面rollback的流程你哪里触发的?
jifen字段你确定自己做了
jifen = jifen + n
类似这种操作。@qq260101081 可以看看guide里 中的乐观锁的知识点,看完你应该会有思路
- jackz 赞了回答
可以写个helper类,放到那里面去。
是这样的
// this handler is a global function $foo->on(Foo::EVENT_HELLO, 'function_name'); //全局函数不是系统函数的意思,就是你自己定义的函数,所以你调用的时候还是 function function_name($event) { echo $event->data; }
//你可以看看trigger是怎么调用callback function的 public function trigger($name, Event $event = null) { $this->ensureBehaviors(); if (!empty($this->_events[$name])) { if ($event === null) { $event = new Event; } if ($event->sender === null) { $event->sender = $this; } $event->handled = false; $event->name = $name; foreach ($this->_events[$name] as $handler) { $event->data = $handler[1]; //on绑定传过来的数据 call_user_func($handler[0], $event); //0是具体的函数,这里看出是没办法解决 系统函数参数的问题 // stop further handling if the event is handled if ($event->handled) { return; } } } // invoke class-level attached handlers Event::trigger($this, $name, $event); }
所以我的看法是应该不会直接绑定系统函数
@chjbo0 其实我也在想为什么他不想用call_user_func_array,这样子系统函数也能使用了
- jackz 回复了 RichardTian 的回答
第二个问题,你可以在一个template的layout里面设置一个flash,然后每次成功或失败,设置一个flash。layout判断到有flash存在后,提示成功或失败。这个东西可以做成一个提醒框,设置时间自动消失,那么就不用每次都跳转到固定的一个页面了,每个页面都会有这个弹框存在,全站提醒哦
@wersion 是的,这样子确实优雅了很多,但是还有一点不优雅Yii::$app->session->setFlash('alert','修改成功');
这句话还是分布,如果后期我想改成 操作成功等其他比较有意思的话,就呵呵了,所以
我还是写成 触发事件的形式封起来。 - jackz 赞了回复
通篇都是对应聘者的要求,对自己的介绍 一丁点都没有
招聘者和求职者是 平等的,你在考察对方的同时,对方也要评估你 - jackz 赞了回答
思路一啊,不错的选择
- jackz 回答了问题 关于YII事件的疑问
是这样的
// this handler is a global function $foo->on(Foo::EVENT_HELLO, 'function_name'); //全局函数不是系统函数的意思,就是你自己定义的函数,所以你调用的时候还是 function function_name($event) { echo $event->data; }
//你可以看看trigger是怎么调用callback function的 public function trigger($name, Event $event = null) { $this->ensureBehaviors(); if (!empty($this->_events[$name])) { if ($event === null) { $event = new Event; } if ($event->sender === null) { $event->sender = $this; } $event->handled = false; $event->name = $name; foreach ($this->_events[$name] as $handler) { $event->data = $handler[1]; //on绑定传过来的数据 call_user_func($handler[0], $event); //0是具体的函数,这里看出是没办法解决 系统函数参数的问题 // stop further handling if the event is handled if ($event->handled) { return; } } } // invoke class-level attached handlers Event::trigger($this, $name, $event); }
所以我的看法是应该不会直接绑定系统函数