入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

YII2 CURD 增删改查

创建时间:2015-04-11 投稿人: 浏览次数:2567

backendcontrollersPostController.php

<?php

namespace backendcontrollers;

use Yii;
use commonmodelsPost;
use commonmodelssearchPostSearch;
use yiiwebController;
use yiiwebNotFoundHttpException;
use yiifiltersVerbFilter;
use frontendaseBaseFrontController;
use backendaseBaseBackController;

/**
 * PostController implements the CRUD actions for Post model.
 */
class PostController extends BaseBackController
{
    public function behaviors()
    {
        return [
            "verbs" => [
                "class" => VerbFilter::className(),
                "actions" => [
                    "delete" => ["post"],
                ],
            ],
        ];
    }

    /**
     * Lists all Post models.
     * @return mixed
     */
    public function actionIndex()
    {
        $searchModel = new PostSearch;
        $dataProvider = $searchModel->search(Yii::$app->request->getQueryParams());

        return $this->render("index", [
            "dataProvider" => $dataProvider,
            "searchModel" => $searchModel,
        ]);
    }

    /**
     * Displays a single Post model.
     * @param integer $id
     * @return mixed
     */
    public function actionView($id)
    {
        return $this->render("view", [
            "model" => $this->findModel($id),
        ]);
    }

    /**
     * Creates a new Post model.
     * If creation is successful, the browser will be redirected to the "view" page.
     * @return mixed
     */
    public function actionCreate()
    {
        $model = new Post;

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->redirect(["view", "id" => $model->id]);
        } else {
            return $this->render("create", [
                "model" => $model,
            ]);
        }
    }

    /**
     * Updates an existing Post 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 Post 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 Post model based on its primary key value.
     * If the model is not found, a 404 HTTP exception will be thrown.
     * @param integer $id
     * @return Post the loaded model
     * @throws NotFoundHttpException if the model cannot be found
     */
    protected function findModel($id)
    {
        if (($model = Post::findOne($id)) !== null) {
            return $model;
        } else {
            throw new NotFoundHttpException("The requested page does not exist.");
        }
    }
}

backendmodelsPost.php


<?php
namespace commonmodels;
use Yii;
use baseBaseActiveRecord;

/**
 * This is the model class for table "post".
 *
 * @property integer $id
 * @property integer $thread_id
 * @property integer $user_id
 * @property string $user_name
 * @property string $title
 * @property string $body
 * @property string $create_time
 * @property string $modify_time
 * @property integer $supports
 * @property integer $againsts
 * @property integer $floor
 * @property string $note
 */
class Post extends BaseActiveRecord
{

	/**
	 * @inheritdoc
	 */
	public static function tableName()
	{
		return "post";
	}

	/**
	 * @inheritdoc
	 */
	public function rules()
	{
		return [
				[
						[
								"thread_id",
								"user_id",
								"user_name",
								"body",
								"create_time"
						],
						"required"
				],
				[
						[
								"thread_id",
								"user_id",
								"supports",
								"againsts",
								"floor"
						],
						"integer"
				],
				[
						[
								"body"
						],
						"string"
				],
				[
						[
								"create_time",
								"modify_time"
						],
						"safe"
				],
				[
						[
								"user_name"
						],
						"string",
						"max" => 32
				],
				[
						[
								"title"
						],
						"string",
						"max" => 128
				],
				[
						[
								"note"
						],
						"string",
						"max" => 64
				]
		];
	}

	/**
	 * @inheritdoc
	 */
	public function attributeLabels()
	{
		return [
				"id" => "ID",
				"thread_id" => "Thread ID",
				"user_id" => "User ID",
				"user_name" => "User Name",
				"title" => "标题",
				"body" => "内容",
				"create_time" => "Create Time",
				"modify_time" => "Modify Time",
				"supports" => "支持数",
				"againsts" => "反对数",
				"floor" => "楼层",
				"note" => "Note"
		];
	}
}

backendviewspostindex.php

<?php

use yiihelpersHtml;
use yiigridGridView;

/**
 * @var yiiwebView $this
 * @var yiidataActiveDataProvider $dataProvider
 * @var commonmodelssearchPostSearch $searchModel
 */

$this->title = "Posts";
$this->params["breadcrumbs"][] = $this->title;
?>
<div class="post-index">

    <h1><?= Html::encode($this->title) ?></h1>

    <?php // echo $this->render("_search", ["model" => $searchModel]); ?>

    <p>
        <?= Html::a("Create Post", ["create"], ["class" => "btn btn-success"]) ?>
    </p>

    <?= GridView::widget([
        "dataProvider" => $dataProvider,
        "filterModel" => $searchModel,
        "columns" => [
            ["class" => "yiigridSerialColumn"],

            "id",
            "thread_id",
            "user_id",
            "user_name",
            "title",
            // "body:ntext",
            // "create_time",
            // "modify_time",
            // "supports",
            // "againsts",
            // "floor",
            // "note",

            ["class" => "yiigridActionColumn"],
        ],
    ]); ?>

</div>

backendviewspostcreate.php

<?php

use yiihelpersHtml;

/**
 * @var yiiwebView $this
 * @var commonmodelsPost $model
 */

$this->title = "Create Post";
$this->params["breadcrumbs"][] = ["label" => "Posts", "url" => ["index"]];
$this->params["breadcrumbs"][] = $this->title;
?>
<div class="post-create">

    <h1><?= Html::encode($this->title) ?></h1>

    <?= $this->render("_form", [
        "model" => $model,
    ]) ?>

</div>

backendviewspostupdate.php

<?php

use yiihelpersHtml;

/**
 * @var yiiwebView $this
 * @var commonmodelsPost $model
 */

$this->title = "Update Post: " . $model->title;
$this->params["breadcrumbs"][] = ["label" => "Posts", "url" => ["index"]];
$this->params["breadcrumbs"][] = ["label" => $model->title, "url" => ["view", "id" => $model->id]];
$this->params["breadcrumbs"][] = "Update";
?>
<div class="post-update">

    <h1><?= Html::encode($this->title) ?></h1>

    <?= $this->render("_form", [
        "model" => $model,
    ]) ?>

</div>

backendviewspostview.php

<?php

use yiihelpersHtml;
use yiiwidgetsDetailView;

/**
 * @var yiiwebView $this
 * @var commonmodelsPost $model
 */

$this->title = $model->title;
$this->params["breadcrumbs"][] = ["label" => "Posts", "url" => ["index"]];
$this->params["breadcrumbs"][] = $this->title;
?>
<div class="post-view">

    <h1><?= Html::encode($this->title) ?></h1>

    <p>
        <?= Html::a("Update", ["update", "id" => $model->id], ["class" => "btn btn-primary"]) ?>
        <?= Html::a("Delete", ["delete", "id" => $model->id], [
            "class" => "btn btn-danger",
            "data" => [
                "confirm" => "Are you sure you want to delete this item?",
                "method" => "post",
            ],
        ]) ?>
    </p>

    <?= DetailView::widget([
        "model" => $model,
        "attributes" => [
            "id",
            "thread_id",
            "user_id",
            "user_name",
            "title",
            "body:ntext",
            "create_time",
            "modify_time",
            "supports",
            "againsts",
            "floor",
            "note",
        ],
    ]) ?>

</div>

backendviewspost\_form.php

<?php

use yiihelpersHtml;
use yiiwidgetsActiveForm;

/**
 * @var yiiwebView $this
 * @var commonmodelsPost $model
 * @var yiiwidgetsActiveForm $form
 */
?>

<div class="post-form">

    <?php $form = ActiveForm::begin(); ?>

    <?= $form->field($model, "thread_id")->textInput() ?>

    <?= $form->field($model, "user_id")->textInput() ?>

    <?= $form->field($model, "user_name")->textInput(["maxlength" => 32]) ?>

    <?= $form->field($model, "title")->textInput(["maxlength" => 128]) ?>

    <?= $form->field($model, "body")->textarea(["rows" => 6]) ?>

    <?= $form->field($model, "create_time")->textInput() ?>

    <?= $form->field($model, "supports")->textInput() ?>

    <?= $form->field($model, "againsts")->textInput() ?>

    <?= $form->field($model, "floor")->textInput() ?>

    <?= $form->field($model, "modify_time")->textInput() ?>

    <?= $form->field($model, "note")->textInput(["maxlength" => 64]) ?>

    <div class="form-group">
        <?= Html::submitButton($model->isNewRecord ? "Create" : "Update", ["class" => $model->isNewRecord ? "btn btn-success" : "btn btn-primary"]) ?>
    </div>

    <?php ActiveForm::end(); ?>

</div>
backendviewspost\_search.php

<?php

use yiihelpersHtml;
use yiiwidgetsActiveForm;

/**
 * @var yiiwebView $this
 * @var commonmodelssearchPostSearch $model
 * @var yiiwidgetsActiveForm $form
 */
?>

<div class="post-search">

    <?php $form = ActiveForm::begin([
        "action" => ["index"],
        "method" => "get",
    ]); ?>

    <?= $form->field($model, "id") ?>

    <?= $form->field($model, "thread_id") ?>

    <?= $form->field($model, "user_id") ?>

    <?= $form->field($model, "user_name") ?>

    <?= $form->field($model, "title") ?>

    <?php // echo $form->field($model, "body") ?>

    <?php // echo $form->field($model, "create_time") ?>

    <?php // echo $form->field($model, "modify_time") ?>

    <?php // echo $form->field($model, "supports") ?>

    <?php // echo $form->field($model, "againsts") ?>

    <?php // echo $form->field($model, "floor") ?>

    <?php // echo $form->field($model, "note") ?>

    <div class="form-group">
        <?= Html::submitButton("Search", ["class" => "btn btn-primary"]) ?>
        <?= Html::resetButton("Reset", ["class" => "btn btn-default"]) ?>
    </div>

    <?php ActiveForm::end(); ?>

</div>



声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。