Yii2.0页面提示消息
适用情况:比如提交一个表单,提交完成之后在页面展示一条提示消息。
控制器里面这样写:
单条消息:
\Yii::$app->getSession()->setFlash('error', 'This is the message');
\Yii::$app->getSession()->setFlash('success', 'This is the message');
\Yii::$app->getSession()->setFlash('info', 'This is the message');
多条消息:
\Yii::$app->getSession()->setFlash('error', ['Error 1', 'Error 2']);
然后是视图里面:
先引入Alert:use yii\bootstrap\Alert;
然后是:
if( Yii::$app->getSession()->hasFlash('success') ) {
echo Alert::widget([
'options' => [
'class' => 'alert-success', //这里是提示框的class
],
'body' => Yii::$app->getSession()->getFlash('success'), //消息体
]);
}
if( Yii::$app->getSession()->hasFlash('error') ) {
echo Alert::widget([
'options' => [
'class' => 'alert-error',
],
'body' => Yii::$app->getSession()->getFlash('error'),
]);
}
如果有消息就会显示对应消息,表现是一个div,和bootstrap的警告框是一样的。
你想把消息提示放在哪里,把上述代码就放到那里就可以了。
*** 题外话,这个编辑器是要用Markdown语法写?
public function actionIndex()
{
$db = Yii::$app->db;
$art = $db -> createCommand("select * from country where id=:id")->bindValue(':id','3')->queryOne();
//print_r($art);die;
$model = new Country();
$request = Yii::$app->request->post();
if($model->load($request) && $model->validate()){
$model->name = $request['Country']['name'];
$model->password = $request['Country']['password'];
$model->repassword = $request['Country']['repassword'];
$model->selects = $request['Country']['selects'];
if($model->save()){
Yii::$app->getSession()->setFlash('success', '保存成功了亲');
return $this->refresh();//防刷新
}else{
Yii::$app->getSession()->setFlash('error', '保存失败');
}
}
return $this->render('index', [
'model' => $model,
]);
}
<?php
$form = ActiveForm::begin([
'action' => ['test/getpost'],
'method'=>'post',
]); ?>
<? echo $form->field($model, 'username')->textInput(['maxlength' => 20]) ?>
<? echo $form->field($model, 'password')->passwordInput(['maxlength' => 20]) ?>
<? echo $form->field($model, 'sex')->radioList(['1'=>'男','0'=>'女']) ?>
<? echo $form->field($model, 'edu')->dropDownList(['1'=>'大学','2'=>'高中','3'=>'初中'],
['prompt'=>'请选择','style'=>'width:120px']) ?>
<? echo $form->field($model, 'file')->fileInput() ?>
<? echo $form->field($model, 'hobby')->checkboxList(['0'=>'篮球','1'=>'足球','2'=>'羽毛球','3'=>'乒乓球']) ?>
<? echo $form->field($model, 'info')->textarea(['rows'=>3]) ?>
<? echo $form->field($model, 'userid')->hiddenInput(['value'=>3]) ?>
<? echo Html::submitButton('提交', ['class'=>'btn btn-primary','name' =>'submit-button']) ?>
<? echo Html::resetButton('重置', ['class'=>'btn btn-primary','name' =>'submit-button']) ?>
<?php ActiveForm::end(); ?>
查数据:
1: 此方法返回 ['name' => 'daxia'] 的所有数据;
User::find()->where(['name' => 'daxia'])->all();
2: 此方法返回 ['name' => 'daxia']的一条数据
User::find()->where(['name' => 'daxia'])->one();
3: 在条件name的基础上,额外添加另一个条件sex
User::find()->where(['name' => 'daxia'])->andWhere(['sex' => '女'])->one();
或者:
User::find()->where(['name' => 'daxia', 'sex' => '女'])->one();
说明: 这两种方法都是可以的
4: andFilterWhere/andWhere应用: 在[1427925600-1427968800]之间查询
User::find()->andFilterWhere(['between', 'regtime', '1427925600', '1427968800’])
说到andFilterWhere,下面我把用到的各种的情况示例列出:
1) : sql: id=1 AND id=2
条件: ['and', 'id=1', 'id=2']
2) : sql: id=1 OR id=2
条件: ['or', 'id=1', 'id=2']
3) : sql: id BETWEEN 1 AND 10
条件: ['between', 'id', 1, 10]
4) : sql: id IN (1, 2, 3)
条件: ['in', 'id', [1, 2, 3]]
5) : sql: name LIKE '%tester%' 模糊查询
条件: ['like', 'name', 'tester']
6) : sql: age>10
条件: ['>', 'age', 10]
5: orderBy() 应用
sql: ORDER BY `id` ASC, `name` DESC
Yii对应的model书写如下:
$query->orderBy([
'id' => SORT_ASC, 升序 默认
'name' => SORT_DESC, 降序
]);
6: groupBy() 应用:
sql: ... GROUP BY `id`, `status`
Yii对应的model书写如下:
$query->groupBy(['id', 'status']);
7: having()应用:
sql: ... HAVING `status` = 1
Yii对应的model书写如下:
$query->having(['status' => 1]);
8: limit() offset() 应用:
sql: ... LIMIT 10 OFFSET 20
Yii对应的model书写如下
$query->limit(10)->offset(20);
9: 用自己书写的sql语句,去查询符合的数据
User::findBySql('SELECT * FROM user')->one(); 此方法是用 sql 语句查询 user 表里面的一条数据;
User::findBySql('SELECT * FROM user')->all(); 此方法是用 sql 语句查询 user 表里面的所有数据;
说明: 测试 - 你也许想要测试或者使用一个由 yii\db\Query 对象创建的 SQL 语句。 你可以使用以下的代码来达到目的:
$query->createCommand()->getRawSql();
下面就是官网上面展示的,一些比较常见的查询方法:
yii\db\Query 提供了一整套的用于不同查询目的的方法。
● yii\db\Query::all(): 将返回一个由行组成的数组,每一行是一个由名称和值构成的关联数组(译者注:省略键的数组称为索引数组)。
● yii\db\Query::one(): 返回结果集的第一行。
● yii\db\Query::column(): 返回结果集的第一列。
● yii\db\Query::scalar(): 返回结果集的第一行第一列的标量值。
● yii\db\Query::exists(): 返回一个表示该查询是否包结果集的值。
● yii\db\Query::count(): 返回 COUNT 查询的结果。
● 其它集合查询方法: 包括 yii\db\Query::sum(), yii\db\Query::average(), yii\db\Query::max(), yii\db\Query::min() 等. $q 是一个必选参数, 既可以是一个字段名称,又可以是一个 DB 表达式。
Yii2.0页面提示消息的更多相关文章
- YII2 定义页面提示
控制器里面这样写: 单条消息: 键值是规定好的,不要去自定义哦! \Yii::$app->getSession()->setFlash('error', 'This is the mess ...
- Asp:Button控件onclick事件无刷新页面提示消息
<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptMana ...
- Asp.net MVC Form认证,IIS改成集成模式后,FormsAuthentication.SetAuthCookie无效,Request.IsAuthenticated值,始终为false,页面提示HTTP 错误 401.0 - Unauthorized,您无权查看此目录或页面
最近公司领导要求,IIS网站要由经典模式改为集成模式,以提高性能.改完之后,登录成功跳转到主页之后,页面提示“”HTTP 错误 401.0 - Unauthorized“,“您无权查看此目录或页面”, ...
- .net MVC 页面页面跳转后提示消息实现办法
mvc在RedirectToAction之后,会清理掉ViewData中的所有数据,因此通过ViewData给下一个页面传递提示消息不太好,如果是通过参数方式传递,刷新跳转后的页面时,消息还会再次提示 ...
- Yii2.0 安装yii2-queue并在Linux启动守护进程监听消息
一.什么是yii2-queue? Yii2-queue是Yii2.0 PHP框架下一个消息队列拓展插件,支持基于DB, Redis, RabbitMQ, AMQP, Beanstalk 和 Gearm ...
- EasyUI Tabs + Yii2.0实现iframe方式打开页面(解决共用静态文件引入加载的问题)
在项目实际开发中,有将打开的各个链接页面隔离的需求(防止静态资源起冲突),这个时候常规思路就是使用iframe来实现!但遇到一个比较棘手的问题,当用easyui Tabs打开一个iframe页面时,怎 ...
- 【Yii系列】Yii2.0基础框架
缘起 因为一个月的短暂停留,我在给朋友搞事情,所以Yii系列的文章耽搁了很长时间,现在又重拾当时的知识,给大伙好好撸下这一系列的博客 提起Yii,虽然是国外的开发者搞的,但是它的作者是华人,这才是让我 ...
- 【Yii系列】Yii2.0的安装与调试
接上一节的话,我们最终选择了Yii框架作为我们的主要开发框架,今天,我就和大伙来聊聊如何安装与调试Yii2.0,以及后续会和大伙聊聊如何在Yii2.0上快速撸代码. Yii2.0的安装 好的,Comp ...
- 一款基于jquery超炫的弹出层提示消息
今天给大家带来一款基于jquery超炫的弹出层提示消息.这款实例页面初始时,一个go按钮.当单击go按钮时,提示强出层以动画形式出现.效果图如下: 在线预览 源码下载 实现的代码. html代码: ...
随机推荐
- java界面设计(swing)
1.Swing基本组件 窗体控件 JFrame.容器控件 JPanel .标签控件 JLabe.按钮控件 JButton.文本框控件 JTextField 与 JTextArea(注意JScrollP ...
- 【Java深入研究】4、fail-fast机制
在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证.快速失 ...
- Modular Inverse(zoj3609+欧几里德)
Modular Inverse Time Limit: 2 Seconds Memory Limit: 65536 KB The modular modular multiplicative ...
- Morley's Therorem(UVA11178+几何)
题意:Morley定理,求D.E.F的坐标 思路:没什么算法,就是几何的应用.注意旋转角就好了. 转载请注明出处:寻找&星空の孩子 题目链接:UVA11178 #include<cstd ...
- hash table (youtube 2)
https://www.youtube.com/watch?v=jEdaduyLLqY
- 在线客服兼容谷歌Chrome、苹果Safari、Opera浏览器的修改
纵览全网提供的众多号称兼容多浏览器的自动收缩在线客服,其实只兼容了IE和FF两种,当遇到谷歌Chrome.苹果Safari.Opera浏览器时鼠标还没点到客服按钮就会自动缩回,实用效果完全打折 以下代 ...
- React 入门学习笔记整理(九)——路由
(1)安装路由 React-router React-router提供了一些router的核心api,包括Router, Route, Switch等,但是它没有提供dom操作进行跳转的api. Re ...
- react+antd分页 实现分页及页面刷新时回到刷新前的page
antd框架地址:https://ant.design/index-cn 利用antdUI框架做了个分页,其他功能都没问题,但是页面跳转后刷新会回到第一页,经过学习,在组件里增加了hash值,详情请看 ...
- 【Java入门提高篇】Day21 Java容器类详解(四)ArrayList源码分析
今天要介绍的是List接口中最常用的实现类——ArrayList,本篇的源码分析基于JDK8,如果有不一致的地方,可先切换到JDK8后再进行操作. 本篇的内容主要包括这几块: 1.源码结构介绍 2.源 ...
- vue权威指南笔记02——对比v-if与v-show
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...