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(); ?>