Heim >PHP-Framework >YII >Erstellen Sie eine Film-Website mit dem Yii-Framework

Erstellen Sie eine Film-Website mit dem Yii-Framework

WBOY
WBOYOriginal
2023-06-21 09:04:321517Durchsuche

Mit der Popularität des Internets und der Liebe der Menschen zu Filmen sind Film-Websites zu einem beliebten Website-Typ geworden. Beim Erstellen einer Film-Website ist ein gutes Framework unbedingt erforderlich. Das Yii-Framework ist ein leistungsstarkes PHP-Framework, das einfach zu verwenden ist und eine hervorragende Leistung bietet. In diesem Artikel erfahren Sie, wie Sie mit dem Yii-Framework eine Film-Website erstellen.

  1. Installieren Sie das Yii-Framework

Bevor Sie das Yii-Framework verwenden, müssen Sie es zuerst installieren. Die Installation des Yii-Frameworks ist sehr einfach. Führen Sie einfach den folgenden Befehl im Terminal aus:

composer create-project yiisoft/yii2-app-basic

Dieser Befehl erstellt eine grundlegende Yii2-Anwendung im aktuellen Verzeichnis. Jetzt können Sie mit der Erstellung Ihrer Film-Website beginnen.

  1. Datenbanken und Tabellen erstellen

Das Yii-Framework bietet ActiveRecord, eine Möglichkeit, die Arbeit mit Datenbanken zu vereinfachen. In diesem Beispiel erstellen wir eine Datentabelle namens „Filme“, die Informationen wie Film-ID, Titel, Regisseur, Schauspieler, Jahr, Genre und Bewertung enthält. Um die Tabelle zu erstellen, gehen Sie im Terminal zum Stammverzeichnis der Anwendung und führen Sie den folgenden Befehl aus:

php yii migrate/create create_movies_table

Bearbeiten Sie dann die generierte Migrationsdatei mit folgendem Inhalt:

<?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}}');
    }
}

Führen Sie nun die Migration aus, um die Filmdatentabelle zu erstellen.

php yii migrate
  1. Filmmodell erstellen

Im Yii-Framework ist es sehr einfach, das Modell der Datentabelle mithilfe von ActiveRecord zu definieren. Wir können im Modellverzeichnis ein Modell mit dem Namen „Movie“ erstellen und den Tabellennamen und den Feldnamen in der Modelldefinition angeben.

<?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'
        ];
    }
}
  1. Filmcontroller erstellen

Der Filmcontroller ist für die Bearbeitung aller Anfragen bezüglich Filmen verantwortlich, z. B. Anfragen zum Hinzufügen, Bearbeiten, Löschen und Anzeigen einer Filmliste. Wir können einen Controller namens MovieController im Controller-Verzeichnis erstellen und den folgenden Code hinzufügen:

<?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.');
    }
}

Darunter zeigt die Methode actionIndex die Liste aller Filme an, die Methoden actionCreate und actionUpdate werden zum Erstellen und Bearbeiten von Filmen verwendet und die Die actionDelete-Methode löscht den Film.

  1. Filmansicht erstellen

Als nächstes müssen wir die Ansichtsdatei erstellen, um die Filmliste anzuzeigen, Filme hinzuzufügen und Filmformen zu bearbeiten. Speichern Sie Ansichtsdateien im Verzeichnis „views/movie“. „index.php“ – zum Anzeigen der Filmliste habe Die Erstellung der Yii-Framework-Filmwebsite ist abgeschlossen und der gesamte Code ist vorhanden. Um eine Filmwebsite lokal auszuführen, gehen Sie im Terminal zum Stammverzeichnis der Anwendung und führen Sie den folgenden Befehl aus:

<?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'],
    ],
]); ?>
    Dadurch wird ein lokaler Webserver gestartet und Ihre Anwendung auf Port 8000 ausgeführt. Jetzt können Sie http://localhost:8000/ in Ihrem Browser öffnen und Ihre Film-Website sehen.
  • In diesem Artikel haben wir gezeigt, wie man mit dem Yii-Framework eine Film-Website erstellt. Die Verwendung des Yii-Frameworks beschleunigt Ihre Entwicklung und bietet viele nützliche Funktionen wie ActiveRecord, MVC-Architektur, Formularvalidierung, Sicherheit und mehr. Weitere Informationen zum Yii-Framework finden Sie in der zugehörigen Dokumentation.

Das obige ist der detaillierte Inhalt vonErstellen Sie eine Film-Website mit dem Yii-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn