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