1. 程式人生 > >Yii2.0頁面提示消息

Yii2.0頁面提示消息

eth model sort mit urn keyword 索引數組 頁面 desc

適用情況:比如提交一個表單,提交完成之後在頁面展示一條提示消息。

控制器裏面這樣寫:

單條消息:

\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頁面提示消息