日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

婚禮是每個人生命中的重要時刻,對于多數人而言,一場美麗的婚禮是十分重要的。在策劃婚禮時,夫妻雙方注重的不僅僅是婚禮的規模和華麗程度,而更加注重婚禮的細節和個性化體驗。為了解決這一問題,許多婚禮策劃公司成立并開發了自己的網站。本文將介紹如何使用Yii框架創建一個婚禮策劃網站。

Yii框架是一個高性能的PHP框架,其簡單易用的特點深受廣大開發者的喜愛。使用Yii框架,我們能夠更加高效地開發出一個高質量的網站。下面將介紹如何使用Yii框架創建一個婚禮策劃網站。

第一步:安裝Yii框架
首先,我們需要安裝Yii框架。可以通過composer進行安裝:

composer create-project --prefer-dist yiisoft/yii2-app-basic basic

登錄后復制

或者下載Yii框架壓縮包,解壓至服務器目錄下。解壓后,運行以下命令安裝所需依賴:

php composer.phar install

登錄后復制

第二步:創建數據庫及相應表
在上一步中,我們已經成功安裝了Yii框架。接下來,需要創建數據庫及相應表。可以通過MySQL Workbench等工具直接創建。

創建一個名為wedding的數據庫,然后創建如下結構的表:

CREATE TABLE IF NOT EXISTS `user` (
    `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    `username` VARCHAR(255) NOT NULL,
    `password_hash` VARCHAR(255) NOT NULL,
    `email` VARCHAR(255) NOT NULL,
    `auth_key` VARCHAR(255) NOT NULL,
    `status` SMALLINT NOT NULL DEFAULT 10,
    `created_at` INT NOT NULL,
    `updated_at` INT NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `article` (
    `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    `title` VARCHAR(255) NOT NULL,
    `content` TEXT NOT NULL,
    `status` SMALLINT NOT NULL DEFAULT 10,
    `created_at` INT NOT NULL,
    `updated_at` INT NOT NULL,
    `user_id` INT UNSIGNED NOT NULL,
    CONSTRAINT `fk_article_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

登錄后復制

其中,user表存儲用戶信息,article表存儲文章信息。

第三步:創建模型
在Yii框架中,模型是MVC架構中M(Model)的一部分,負責處理數據。我們需要創建User和Article兩個模型:

class User extends ActiveRecord implements IdentityInterface
{
    public static function findIdentity($id)
    {
        return static::findOne($id);
    }

    public static function findIdentityByAccessToken($token, $type = null)
    {
        throw new NotSupportedException('"findIdentityByAccessToken" is not implemented.');
    }

    public function getId()
    {
        return $this->getPrimaryKey();
    }

    public function getAuthKey()
    {
        return $this->auth_key;
    }

    public function validateAuthKey($authKey)
    {
        return $this->getAuthKey() === $authKey;
    }

    public static function findByUsername($username)
    {
        return static::findOne(['username' => $username, 'status' => self::STATUS_ACTIVE]);
    }

    public function validatePassword($password)
    {
        return Yii::$app->security->validatePassword($password, $this->password_hash);
    }
}

class Article extends ActiveRecord
{
    public function getUser()
    {
        return $this->hasOne(User::className(), ['id' => 'user_id']);
    }
}

登錄后復制

在上面的代碼中,我們通過繼承ActiveRecord類定義了User和Article兩個模型。User模型實現了IdentityInterface接口,用于身份驗證;Article模型中通過getUser()方法定義了用戶和文章之間的關系。

第四步:創建控制器和視圖
在Yii框架中,控制器是MVC架構中C(Controller)的一部分,負責處理接收到的web請求。我們需要創建兩個控制器:UserController和ArticleController,以及相應的視圖。

UserController用于處理用戶注冊、登錄等操作:

class UserController extends Controller
{
    public function actionSignup()
    {
        $model = new SignupForm();

        if ($model->load(Yii::$app->request->post()) && $model->signup()) {
            Yii::$app->session->setFlash('success', 'Thank you for registration. Please check your inbox for verification email.');
            return $this->goHome();
        }

        return $this->render('signup', [
            'model' => $model,
        ]);
    }

    public function actionLogin()
    {
        $model = new LoginForm();

        if ($model->load(Yii::$app->request->post()) && $model->login()) {
            return $this->goBack();
        }

        return $this->render('login', [
            'model' => $model,
        ]);
    }

    public function actionLogout()
    {
        Yii::$app->user->logout();

        return $this->goHome();
    }
}

登錄后復制

ArticleController用于處理文章編輯、顯示等操作:

class ArticleController extends Controller
{
    public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'only' => ['create', 'update'],
                'rules' => [
                    [
                        'actions' => ['create', 'update'],
                        'allow' => true,
                        'roles' => ['@'],
                    ],
                ],
            ],
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'delete' => ['POST'],
                ],
            ],
        ];
    }

    public function actionIndex()
    {
        $dataProvider = new ActiveDataProvider([
            'query' => Article::find(),
        ]);

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

    public function actionView($id)
    {
        return $this->render('view', [
            'model' => $this->findModel($id),
        ]);
    }

    public function actionCreate()
    {
        $model = new Article();

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

        return $this->render('create', [
            'model' => $model,
        ]);
    }

    public function actionUpdate($id)
    {
        $model = $this->findModel($id);

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

        return $this->render('update', [
            'model' => $model,
        ]);
    }

    public function actionDelete($id)
    {
        $this->findModel($id)->delete();

        return $this->redirect(['index']);
    }

    protected function findModel($id)
    {
        if (($model = Article::findOne($id)) !== null) {
            return $model;
        }

        throw new NotFoundHttpException('The requested page does not exist.');
    }
}

登錄后復制

在以上代碼中,我們使用了Yii內置的一些組件和操作,例如AccessControl、ActiveDataProvider、VerbFilter等,以更加高效地進行開發。

第五步:配置路由和數據庫
在Yii框架中,需要在配置文件中進行路由配置和數據庫連接配置。我們需要編輯如下兩個文件:

/config/web.php:

return [
    'id' => 'basic',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'components' => [
        'request' => [
            'csrfParam' => '_csrf',
        ],
        'user' => [
            'identityClass' => 'appmodelsUser',
            'enableAutoLogin' => true,
        ],
        'session' => [
            // this is the name of the session cookie used for login on the frontend
            'name' => 'wedding_session',
        ],
        'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yiilogFileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                '' => 'article/index',
                '<controller>/<action>' => '<controller>/<action>',
                '<controller>/<action>/<id:d+>' => '<controller>/<action>',
            ],
        ],
        'db' => require __DIR__ . '/db.php',
    ],
    'params' => $params,
];

登錄后復制

上面的代碼中,需要配置數據庫、URL路由等信息,以便項目能夠順利運行。/config/db.php文件中則需要配置數據庫連接信息,以便Yii框架與數據庫進行交互。

最后,我們還需要在/config/params.php中配置郵件發送信息,以便用戶注冊成功后能夠收到驗證郵件。

到此,我們已經完成了使用Yii框架創建婚禮策劃網站的全部過程。通過本文的介紹,您已經了解了Yii框架的基本使用方法,以及如何創建一個簡單的婚禮策劃網站。如果您想要創建更加復雜、更加專業的婚禮網站,還需要進一步深入學習Yii框架,以更加高效地開發web應用程序。

以上就是使用Yii框架創建婚禮策劃網站的詳細內容,更多請關注www.xfxf.net其它相關文章!

分享到:
標簽:Yii框架 婚禮策劃 網站創建
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定