Rumah > rangka kerja php > YII > teks badan

Buat tapak web filem menggunakan rangka kerja Yii

WBOY
Lepaskan: 2023-06-21 09:04:32
asal
1450 orang telah melayarinya

Dengan populariti Internet dan kecintaan orang ramai terhadap filem, tapak web filem telah menjadi jenis tapak web yang popular. Apabila membuat laman web filem, rangka kerja yang baik sangat diperlukan. Rangka kerja Yii ialah rangka kerja PHP berprestasi tinggi yang mudah digunakan dan mempunyai prestasi cemerlang. Dalam artikel ini, kami akan meneroka cara membuat tapak web filem menggunakan rangka kerja Yii.

  1. Pasang rangka kerja Yii

Sebelum menggunakan rangka kerja Yii, anda perlu memasang rangka kerja terlebih dahulu. Memasang rangka kerja Yii adalah sangat mudah, cuma laksanakan arahan berikut dalam terminal:

composer create-project yiisoft/yii2-app-basic
Salin selepas log masuk

Perintah ini akan mencipta aplikasi Yii2 asas dalam direktori semasa. Kini anda sudah bersedia untuk mula membuat tapak web filem anda.

  1. Mencipta pangkalan data dan jadual

Rangka kerja Yii menyediakan ActiveRecord, satu cara untuk menjadikan pangkalan data operasi mudah. Dalam contoh ini, kami akan mencipta jadual data yang dipanggil filem, yang mengandungi maklumat seperti ID filem, tajuk, pengarah, pelakon, tahun, genre dan penilaian. Untuk mencipta jadual, pergi ke akar aplikasi dalam terminal dan jalankan arahan berikut:

php yii migrate/create create_movies_table
Salin selepas log masuk

Kemudian edit fail migrasi yang dijana ke kandungan berikut:

<?php

use yiidbMigration;

/**
 * Handles the creation of table `{{%movies}}`.
 */
class m210630_050401_create_movies_table extends Migration
{
    /**
     * {@inheritdoc}
     */
    public function safeUp()
    {
        $this->createTable('{{%movies}}', [
            'id' => $this->primaryKey(),
            'title' => $this->string()->notNull(),
            'director' => $this->string()->notNull(),
            'actors' => $this->text()->notNull(),
            'year' => $this->integer()->notNull(),
            'genre' => $this->string()->notNull(),
            'rating' => $this->decimal(3,1)->notNull(),
        ]);
    }

    /**
     * {@inheritdoc}
     */
    public function safeDown()
    {
        $this->dropTable('{{%movies}}');
    }
}
Salin selepas log masuk

Sekarang jalankan migrasi untuk mencipta Lembaran Data filem.

php yii migrate
Salin selepas log masuk
  1. Buat model filem

Dalam rangka kerja Yii, sangat mudah untuk menentukan model jadual data menggunakan ActiveRecord. Kita boleh mencipta model bernama Movie dalam direktori model dan menentukan nama jadual dan nama medan dalam definisi model.

<?php

namespace appmodels;

use yiidbActiveRecord;

class Movie extends ActiveRecord
{
    /**
     * {@inheritdoc}
     */
    public static function tableName()
    {
        return '{{%movies}}';
    }

    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
            [['title', 'director', 'actors', 'year', 'genre', 'rating'], 'required'],
            [['year'], 'integer'],
            [['rating'], 'number'],
            [['actors'], 'string'],
            [['title', 'director', 'genre'], 'string', 'max' => 255],
        ];
    }

    /**
    * {@inheritdoc}
    */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'title' => 'Title',
            'director' => 'Director',
            'actors' => 'Actors',
            'year' => 'Year',
            'genre' => 'Genre',
            'rating' => 'Rating'
        ];
    }
}
Salin selepas log masuk
  1. Buat pengawal filem

Pengawal filem akan bertanggungjawab untuk mengendalikan semua permintaan berkenaan filem, seperti permintaan untuk menambah, mengedit, memadam dan memaparkan senarai filem . Kita boleh mencipta pengawal bernama MovieController dalam direktori pengawal dan menambah kod berikut:

<?php

namespace appcontrollers;

use Yii;
use yiiwebController;
use appmodelsMovie;

class MovieController extends Controller
{
    /**
     * Shows all movies.
     *
     * @return string
     */
    public function actionIndex()
    {
        $movies = Movie::find()->all();
        return $this->render('index', ['movies' => $movies]);
    }

    /**
     * Creates a new movie.
     *
     * @return string|yiiwebResponse
     */
    public function actionCreate()
    {
        $model = new Movie();

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

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

    /**
     * Updates an existing movie.
     *
     * @param integer $id
     * @return string|yiiwebResponse
     * @throws yiiwebNotFoundHttpException
     */
    public function actionUpdate($id)
    {
        $model = $this->findModel($id);

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

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

    /**
     * Deletes an existing movie.
     *
     * @param integer $id
     * @return yiiwebResponse
     * @throws yiiwebNotFoundHttpException
     */
    public function actionDelete($id)
    {
        $this->findModel($id)->delete();

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

    /**
     * Finds the Movie model based on its primary key value.
     * If the model is not found, a 404 HTTP exception will be thrown.
     *
     * @param integer $id
     * @return ppmodelsMovie
     * @throws NotFoundHttpException if the model cannot be found
     */
    protected function findModel($id)
    {
        if (($model = Movie::findOne($id)) !== null) {
            return $model;
        }

        throw new NotFoundHttpException('The requested page does not exist.');
    }
}
Salin selepas log masuk

Antaranya, kaedah actionIndex akan memaparkan senarai semua filem, dan kaedah actionCreate dan actionUpdate akan digunakan untuk mencipta dan mengedit filem, Kaedah actionDelete akan memadamkan filem.

  1. Buat Paparan Filem

Seterusnya, kita perlu mencipta fail paparan untuk memaparkan senarai filem, menambah filem dan mengedit borang filem. Simpan fail paparan dalam direktori paparan/filem.

  • index.php - digunakan untuk memaparkan senarai filem
<?php

use yiihelpersHtml;
use yiigridGridView;

/* @var $this yiiwebView */
/* @var $movies appmodelsMovie[] */

$this->title = 'Movies';
$this->params['breadcrumbs'][] = $this->title;
?>

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

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

<?= GridView::widget([
    'dataProvider' => new yiidataArrayDataProvider([
        'allModels' => $movies,
        'sort' => [
            'attributes' => [
                'title',
                'director',
                'year',
                'genre',
                'rating',
            ],
        ],
    ]),
    'columns' => [
        ['class' => 'yiigridSerialColumn'],

        'title',
        'director',
        'actors:ntext',
        'year',
        'genre',
        'rating',

        ['class' => 'yiigridActionColumn'],
    ],
]); ?>
Salin selepas log masuk
  • create.php - digunakan untuk mencipta filem baharu
<?php

use yiihelpersHtml;
use yiiwidgetsActiveForm;

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

$this->title = 'Create Movie';
$this->params['breadcrumbs'][] = ['label' => 'Movies', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<h1><?= Html::encode($this->title) ?></h1>

<div class="movie-form">

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

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

    <?= $form->field($model, 'director')->textInput(['maxlength' => true]) ?>

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

    <?= $form->field($model, 'year')->textInput() ?>

    <?= $form->field($model, 'genre')->textInput(['maxlength' => true]) ?>

    <?= $form->field($model, 'rating')->textInput() ?>

    <div class="form-group">
        <?= Html::submitButton('Save', ['class' => 'btn btn-success']) ?>
    </div>

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

</div>
Salin selepas log masuk
  • update.php - untuk menyunting filem
<?php

use yiihelpersHtml;
use yiiwidgetsActiveForm;

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

$this->title = 'Update Movie: ' . $model->title;
$this->params['breadcrumbs'][] = ['label' => 'Movies', 'url' => ['index']];
$this->params['breadcrumbs'][] = ['label' => $model->title, 'url' => ['view', 'id' => $model->id]];
$this->params['breadcrumbs'][] = 'Update';
?>
<h1><?= Html::encode($this->title) ?></h1>

<div class="movie-form">

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

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

    <?= $form->field($model, 'director')->textInput(['maxlength' => true]) ?>

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

    <?= $form->field($model, 'year')->textInput() ?>

    <?= $form->field($model, 'genre')->textInput(['maxlength' => true]) ?>

    <?= $form->field($model, 'rating')->textInput() ?>

    <div class="form-group">
        <?= Html::submitButton('Save', ['class' => 'btn btn-primary']) ?>
    </div>

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

</div>
Salin selepas log masuk
  1. Jalankan tapak web filem

Sekarang kami telah menyelesaikan penciptaan laman web filem rangka kerja Yii , semua Kod semua sudah sedia. Untuk menjalankan tapak web filem secara tempatan, pergi ke direktori akar aplikasi dalam terminal dan laksanakan arahan berikut:

php yii serve
Salin selepas log masuk

Ini akan memulakan pelayan web tempatan dan menjalankan aplikasi anda pada port 8000. Sekarang, anda boleh membuka http://localhost:8000/ dalam penyemak imbas anda dan melihat tapak web filem anda.

Dalam artikel ini, kami telah menunjukkan cara membuat tapak web filem menggunakan rangka kerja Yii. Menggunakan rangka kerja Yii akan mempercepatkan pembangunan anda dan menyediakan banyak ciri berguna, seperti ActiveRecord, seni bina MVC, pengesahan borang, keselamatan dan banyak lagi. Untuk mengetahui lebih lanjut tentang rangka kerja Yii, lihat dokumentasinya.

Atas ialah kandungan terperinci Buat tapak web filem menggunakan rangka kerja Yii. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!