yii2.0用gii自动补全代码做的简单增删改查,以及图片上传和展示

时间:2022-07-20 21:20:44

首先已经用gii根据model层生成了控制器,模型,视图层。

表结构为如图所示:表名为zhoukao1,

aaarticlea/png;base64,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" alt="" />

controllers层里:Zhoukao1Controller.php

 <?php
namespace frontend\controllers; use Yii;
use app\models\Zhoukao1;
use app\models\UploadForm;
use app\models\search\ZhoukaoSearch;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
use yii\web\UploadedFile;
/**
* Zhoukao1Controller implements the CRUD actions for Zhoukao1 model.
*/
class Zhoukao1Controller extends Controller
{
/**
* @inheritdoc
*/
public function behaviors()
{
return [
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['POST'],
],
],
];
} /**
* Lists all Zhoukao1 models.
* @return mixed
*/
public function actionIndex()
{
$searchModel = new ZhoukaoSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams); //print_r($model);die;
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider, ]);
} /**
* Displays a single Zhoukao1 model.
* @param integer $id
* @return mixed
*/
public function actionView($id)
{
return $this->render('view', [
'model' => $this->findModel($id),
]);
} /**
* Creates a new News model.
* If creation is successful, the browser will be redirected to the 'view' page.
* @return mixed
*/
public function actionCreate()
{ //实例化了一个上传model和表model
$model = new Zhoukao1();
$upload_model = new UploadForm();
//判断是否是post传值
if (Yii::$app->request->isPost) {
$post=Yii::$app->request->post();
/*$data=['name'=>$post['Zhoukao1']['name'],
'price'=>$post['Zhoukao1']['price'],
'address'=>$post['Zhoukao1']['address'],
'tuijain'=>$post['Zhoukao1']['tuijain'],
];*/
$upload_model->file = \yii\web\UploadedFile::getInstance($upload_model, 'file');
if ($upload_model->file && $upload_model->validate()) {
$filename='uploads/' . $upload_model->file->baseName . '.' . $upload_model->file->extension;
$upload_model->file->saveAs($filename);
/* $data['file']=$filename;*/
$post['Zhoukao1']['file']=$filename;
} //model层自定义一个方法,下面是另一种方法
/*$a=$model->create1($data);
if ($model->load($post)&&$model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
}*/
if ($model->load($post)&&$model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
}
}else {
//echo 1;die;
return $this->render('create', [
'model' => $model,
'upload_model'=>$upload_model,
]);
} }
/**
* Updates an existing Zhoukao1 model.
* If update is successful, the browser will be redirected to the 'view' page.
* @param integer $id
* @return mixed
*/
public function actionUpdate($id)
{
$model = $this->findModel($id); if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('update', [
'model' => $model,
]);
}
} /**
* Deletes an existing Zhoukao1 model.
* If deletion is successful, the browser will be redirected to the 'index' page.
* @param integer $id
* @return mixed
*/
public function actionDelete($id)
{
$this->findModel($id)->delete(); return $this->redirect(['index']);
} /**
* Finds the Zhoukao1 model based on its primary key value.
* If the model is not found, a 404 HTTP exception will be thrown.
* @param integer $id
* @return Zhoukao1 the loaded model
* @throws NotFoundHttpException if the model cannot be found
*/
protected function findModel($id)
{
if (($model = Zhoukao1::findOne($id)) !== null) {
return $model;
} else {
throw new NotFoundHttpException('The requested page does not exist.');
}
}
}

models层:分为两个,一个上传图片UploadFrom.php和Zhoukao1.php

UploadFrom.php代码如下:

 <?php
namespace app\models;
use yii\base\Model;
use yii\web\UploadedFile;
/**
* UploadForm is the model behind the upload form.
*/
class UploadForm extends Model
{
/**
* @var UploadedFile file attribute
*/
public $file;
/**
* @return array the validation rules.
*/
public function rules()
{
return [
[['file'], 'file'],
];
}
}

Zhoukao1.php代码如下:(注意rules规则里字段或多或少都需要设置一下,否则接不到值。)

 <?php
namespace app\models;
use Yii;
/**
* This is the model class for table "zhoukao1".
*
* @property integer $id
* @property string $name
* @property string $price
* @property string $address
* @property integer $tuijain
*/
class Zhoukao1 extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'zhoukao1';
}
//自定义一个插入方法
public function create1($data)//AR模式1
{ $this->setAttributes($data);//载入数据
return $this->insert();//返回结果 } /**
* @inheritdoc
*/
public function rules()
{
return [
[['name'], 'required'],
[['price'], 'number'],
[['tuijain'], 'integer'],
[['name', 'address'], 'string', 'max' => 255],
[['file'],'string','max' => 255] ];
} /**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'name' => 'Name',
'price' => 'Price',
'address' => 'Address',
'tuijain' => 'Tuijain',
'file' => 'File',
];
}
}

ZhoukaoSearch.php:搜索model(一般单独放置到models/search文件夹里)

<?php
namespace app\models\search;
use Yii;
use yii\base\Model;
use yii\data\ActiveDataProvider;
use app\models\Zhoukao1;
/**
* ZhoukaoSearch represents the model behind the search form about `app\models\Zhoukao1`.
*/
class ZhoukaoSearch extends Zhoukao1
{
/**
* @inheritdoc
*/
public function rules()
{
return [
[['id', 'tuijain'], 'integer'],
[['name', 'address'], 'safe'],
[['price'], 'number'],
];
} /**
* @inheritdoc
*/
public function scenarios()
{
// bypass scenarios() implementation in the parent class
return Model::scenarios();
} /**
* Creates data provider instance with search query applied
*
* @param array $params
*
* @return ActiveDataProvider
*/
public function search($params)
{
$query = Zhoukao1::find(); // add conditions that should always apply here $dataProvider = new ActiveDataProvider([
'query' => $query,
]); $this->load($params); if (!$this->validate()) {
// uncomment the following line if you do not want to return any records when validation fails
// $query->where('0=1');
return $dataProvider;
} // grid filtering conditions
$query->andFilterWhere([
'id' => $this->id,
'price' => $this->price,
'tuijain' => $this->tuijain,
]); $query->andFilterWhere(['like', 'name', $this->name])
->andFilterWhere(['like', 'address', $this->address]); return $dataProvider;
}
}

接下来该views层了:

form.php里记得带文件上传头部:

 <?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model app\models\Zhoukao1 */
/* @var $form yii\widgets\ActiveForm */
?> <div class="zhoukao1-form"> <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?> <?= $form->field($model, 'name')->textInput(['maxlength' => true]) ?> <?= $form->field($model, 'price')->textInput(['maxlength' => true]) ?> <?= $form->field($model, 'address')->textInput(['maxlength' => true]) ?> <?= $form->field($model, 'tuijain')->textInput() ?> <?= $form->field($upload_model, 'file')->fileInput() ?> <div class="form-group">
<?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
</div> <?php ActiveForm::end(); ?> </div>

create.php里

 <?php
use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model app\models\Zhoukao1 */
$this->title = 'Create Zhoukao1';
$this->params['breadcrumbs'][] = ['label' => 'Zhoukao1s', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="zhoukao1-create">
<?= $this->render('_form', [
'model' => $model,
'upload_model' => $upload_model,//记得加上上传model,否则报错找不到。
]) ?> </div>

index.php展示页

 <?php
use yii\helpers\Html;
use yii\grid\GridView;
/* @var $this yii\web\View */
/* @var $searchModel app\models\search\ZhoukaoSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */
$this->title = 'Zhoukao1s';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="zhoukao1-index"> <h1><?= Html::encode($this->title) ?></h1>
<?php // echo $this->render('_search', ['model' => $searchModel]); ?> <p>
<?= Html::a('创建', ['create'], ['class' => 'btn btn-success']) ?>
</p>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel, 'columns' => [
['class' => 'yii\grid\SerialColumn'], 'id',
'name'=>[//固定格式
                  'attribute'=>'string',
                  'format'=>'raw',
                  'value'=>function($model){
                      return '*'.substr("$model->name",3);
                  }
          ],
              'tel'=>[
                  'attribute'=>'string',
                  'format'=>'raw',
                  'value'=>function($model){
                      return substr("$model->tel",0,3).'****'.substr("$model->tel",-4);
                  }
          ],
'price',
'address:ntext',
'tuijain',
['attribute'=>'file', //我的图片字段是file,还有一种显示方法为‘file:image’ ,但是图片大小不能控制。
'format' => ['image',['width'=>'50','height'=>'30',]],
],//这是展示图片的
[//自定义按钮
                'class' => 'yii\grid\ActionColumn',
                'template' => '{view} {update}',
                'header' => '操作',
                'buttons' => [
                'view' => function ($url, $model, $key) {
                    return Html::a('查看', $url, ['title' => '获取xxx'] );
                   },
                  ],
              ],
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
</div>

其他的页面都是gii自动生成的代码。


注:本文由王智磊(王大宝儿)整理编写,也参考借鉴了很多大神的笔记,分享代码,分享成功,欢迎各位交流和转载,转载请注明出处(博客园:王大宝儿)http://www.cnblogs.com/wangzhilei/