params['breadcrumbs']的意義:顯示一個導航條 數組裏可以鏈接名稱和鏈接地址 URL爲控制器下所屬方法
$this->params['breadcrumbs'][] = ['label' => 'Test2s', 'url' => ['entry']];
hasMany、hasOne使用
一對多:hasMany
一對一:hasOne
返回結果:這兩個方法的返回結果y都爲yii\db\ActiveQuery對象
第一個參數:所關聯的模型的類名稱。
第二個參數:是一個數組,其中鍵爲所關聯的模型中的屬性,值爲當前模型中的屬性。
多表聯查,asArray() 返回結果爲數組形式
Relation::find()->joinWith('programmer')->joinWith('Project')->asArray()->all(); 多表聯查joinWith()
session的使用:
$session = Yii::$app->session; //調動session
$session->set('name','root'); //設置session
$session->get('name'); //獲取session
$session->remove('name'); //清除session
分頁類的使用Pagination
use yii\data\Pagination;
$total = Admin::find()->count(); //獲取分頁總數
$pages = new Pagination(['totalCount' => $total, 'pageSize' => '2']); //實例化分頁類給定分頁參數
$rows=Admin ::find()->offset($pages->offset)->limit($pages->limit)->all(); //獲取數
Return $this->render(‘oper’,[‘rows’=>1,’pages’=>$pages]); //顯示模板傳值
<?= \yii\widgets\LinkPager::widget(['pagination' => $pages]); ?> //模板顯示
//視圖中修改樣式
<?php echo yii\widgets\LinkPager::widget([
'pagination' => $pages,
'firstPageLabel' => '首頁',
'lastPageLabel' => '末頁',
'prevPageLabel' => '上一頁',
'nextPageLabel' => '下一頁',
]); ?>
單文件上傳:
model中的代碼Upload.php:
<?php
namespace backend\models;
use Yii;
use yii\web\UploadedFile;
class Upload extends \yii\db\ActiveRecord{
public $file;
public function rules(){
return [
[["file"], "file",],
];
}
}
view模板中:
<?php
use yii\widgets\ActiveForm;
$form = ActiveForm::begin(["options" => ["enctype" => "multipart/form-data"]]); ?>//設置文件上傳
<?= $form->field($model, "file")->fileInput() ?>
<button>Submit</button>
<?php ActiveForm::end(); ?>
控制器:
namespace backend\controllers;
use backend\models\Upload; //調用model類
use yii\web\UploadedFile; //調用上傳基類
class ToolsController extends \yii\web\Controller{
public function actionUpload (){
$model = new Upload(); //實例化上傳類
$uploadSuccessPath = ""; //上傳成功的路徑
if (Yii::$app->request->isPost) {
$model->file = UploadedFile::getInstance($model, "file");
$dir = "../../public/uploads/".date("Ymd"); //上傳路徑
if (!is_dir($dir))
mkdir($dir); 如果路徑不存在 創建路徑
if ($model->validate()) {
$fileName = date("YmdHis").$model->file->baseName . "." . $model->file->extension;上傳文件名
$dir = $dir."/". $fileName;
$model->file->saveAs($dir);//文件保存到指定目錄中
$uploadSuccessPath = "/uploads/".date("Ymd")."/".$fileName;
}
}
return $this->render("upload", ["model" => $model,"uploadSuccessPath" => $uploadSuccessPath,]);
}
}
小部件基本在views中使用,調用 yii\base\Widget::widget() 方法使用小部件
時間小部件:
<?php
use yii\jui\DatePicker;
?>
<?= DatePicker::widget([
'model' => $model,
'attribute' => 'from_date',
'language' => 'ru',
'clientOptions' => [
'dateFormat' => 'yy-mm-dd',
],
]) ?>
登錄小部件:
<?php
use yii\widgets\ActiveForm;
use yii\helpers\Html;
?>
<?php $form = ActiveForm::begin(['id' => 'login-form']); ?>
<?= $form->field($model, 'username') ?>
<?= $form->field($model, 'password')->passwordInput() ?>
<div class="form-group">
<?= Html::submitButton('Login') ?>
</div>
<?php ActiveForm::end(); ?>