适用情况:比如提交一个表单,提交完成之后在页面展示一条提示消息。

控制器里面这样写:

单条消息:

\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页面提示消息的更多相关文章

  1. YII2 定义页面提示

    控制器里面这样写: 单条消息: 键值是规定好的,不要去自定义哦! \Yii::$app->getSession()->setFlash('error', 'This is the mess ...

  2. Asp:Button控件onclick事件无刷新页面提示消息

    <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptMana ...

  3. Asp.net MVC Form认证,IIS改成集成模式后,FormsAuthentication.SetAuthCookie无效,Request.IsAuthenticated值,始终为false,页面提示HTTP 错误 401.0 - Unauthorized,您无权查看此目录或页面

    最近公司领导要求,IIS网站要由经典模式改为集成模式,以提高性能.改完之后,登录成功跳转到主页之后,页面提示“”HTTP 错误 401.0 - Unauthorized“,“您无权查看此目录或页面”, ...

  4. .net MVC 页面页面跳转后提示消息实现办法

    mvc在RedirectToAction之后,会清理掉ViewData中的所有数据,因此通过ViewData给下一个页面传递提示消息不太好,如果是通过参数方式传递,刷新跳转后的页面时,消息还会再次提示 ...

  5. Yii2.0 安装yii2-queue并在Linux启动守护进程监听消息

    一.什么是yii2-queue? Yii2-queue是Yii2.0 PHP框架下一个消息队列拓展插件,支持基于DB, Redis, RabbitMQ, AMQP, Beanstalk 和 Gearm ...

  6. EasyUI Tabs + Yii2.0实现iframe方式打开页面(解决共用静态文件引入加载的问题)

    在项目实际开发中,有将打开的各个链接页面隔离的需求(防止静态资源起冲突),这个时候常规思路就是使用iframe来实现!但遇到一个比较棘手的问题,当用easyui Tabs打开一个iframe页面时,怎 ...

  7. 【Yii系列】Yii2.0基础框架

    缘起 因为一个月的短暂停留,我在给朋友搞事情,所以Yii系列的文章耽搁了很长时间,现在又重拾当时的知识,给大伙好好撸下这一系列的博客 提起Yii,虽然是国外的开发者搞的,但是它的作者是华人,这才是让我 ...

  8. 【Yii系列】Yii2.0的安装与调试

    接上一节的话,我们最终选择了Yii框架作为我们的主要开发框架,今天,我就和大伙来聊聊如何安装与调试Yii2.0,以及后续会和大伙聊聊如何在Yii2.0上快速撸代码. Yii2.0的安装 好的,Comp ...

  9. 一款基于jquery超炫的弹出层提示消息

    今天给大家带来一款基于jquery超炫的弹出层提示消息.这款实例页面初始时,一个go按钮.当单击go按钮时,提示强出层以动画形式出现.效果图如下: 在线预览   源码下载 实现的代码. html代码: ...

随机推荐

  1. C# 微信公众号开发--准备工作

    前言 最初打算熟悉下微信开发打算用node.js开发,结果底气不足先用C#开发,先踩了踩坑. 准备工作 微信公众平台开发者文档. 这个先多看几遍. 测试公众号,申请开通后会看到微信号,appID,ap ...

  2. 【转载】Sqlserver的SQL语句实现分页查询

    在应用程序的开发中,如果数据库中的数据量过于的庞大,则需要针对查询数据做分页处理,取出对应分页中的数据,在Sqlserver分页的语句写法中,有两种比较常用,一种是数据表中含有自增量Id的情况,可以根 ...

  3. 分部类,分部方法 - 修饰符partial

    一.分部类 什么是部分类呢?简单来说就是将一个类型或方法拆分到两个或多个源文件中,每个源文件只包含类型定义的一部分. 当使用自动生成的源时,无须重新创建源文件便可将代码添加到类中.Visual Stu ...

  4. 延迟初始化Lazy

    延迟初始化出现于.NET 4.0,主要用于提高性能,避免浪费计算,并减少程序内存要求.也可以称为,按需加载. 基本语法: Lazy<T> xx = new Lazy<T>(); ...

  5. 【转】Win10年度更新开发必备:VS2015 Update 3正式版下载汇总

    微软在06月27日发布了Visual Studio 2015 Update 3 .在MSDN中微软也提供下载,而且MSDN的Visual Studio 2015 Update 3与官方免费下载的文件是 ...

  6. Apollo源码阅读笔记(二)

    Apollo源码阅读笔记(二) 前面 分析了apollo配置设置到Spring的environment的过程,此文继续PropertySourcesProcessor.postProcessBeanF ...

  7. Django Rest framework 之 权限

    django rest framework 之 认证(一) django rest framework 之 权限(二) django rest framework 之 节流(三) django res ...

  8. spring项目获取ServletContext

    (1)生命周期 ServletContext中的属性的生命周期从创建开始,到服务器关闭而 (2).获取ServletContext 1.request获取servletContext ServletC ...

  9. 【工具相关】ionic-通过nmp安装最新版本的 cordova 和 ionic

    一,命令行下输入: sudo npm install -g cordova ionic 用来安装最新版本的cordova和ionic. 如下图所示: 二,等待一下,如下图所示. 三,用命令 npm u ...

  10. vue-cli脚手架目录一览

    最近在学习vue,看的稀里糊涂.今天从头开始,把cli配置的vue项目目录和配置文件搞清楚. 先看看整个项目目录结构: 再看看build文件夹下相关文件及目录: config文件夹下目录和文件: 接下 ...