ホームページ  >  記事  >  バックエンド開発  >  新人の変革: laravel5 に基づいて簡単なフォーラム システムを作成する方法を段階的に教えます (1)

新人の変革: laravel5 に基づいて簡単なフォーラム システムを作成する方法を段階的に教えます (1)

WBOY
WBOYオリジナル
2016-06-23 13:19:211061ブラウズ

このチュートリアルのサンプル コードを参照してください:

このチュートリアルのコミュニケーション グループ: 96094083

どこかで行き詰まった場合、それを解決する最も簡単な方法は、私のサンプル コードを参照するか、コミュニケーション グループでそれを提起することです。

Laravel 5 中国語ドキュメント:

1. http://laravel-china.org/docs/5.0

2. http://www.golaravel.com/laravel/docs/5.0/

の最終的な効果このプロジェクトの画像


デフォルト条件

この記事は、完全に構成された PHP + MySQL 動作環境がすでにあり、PHP Web サイトの操作の基本知識を理解していることを前提としています。このチュートリアルに従うことで、ログインを含む基本的でシンプルな Luntan システムを取得し、いくつかの強力な Laravel プラグインとコンポーザー パッケージの使用方法を学びます (Laravel プラグインはコンポーザー パッケージでもあります)。

ソフトウェアバージョン: PHP 5.4+、MySQL 5.1+

この記事は、PHP および MVC プログラミングをまったく理解していない人にはお勧めできません。この記事は、「ステップバイステップで説明する」チュートリアルではありません。この記事では、Laravel の実行ロジックを真に理解するために、大小を問わずいくつかの隠れたタスクを解決するためにある程度の努力を払う必要があります。

1. インストール

多くの人がLaravel学習の最初のステップであるインストールからブロックされています。インストールチュートリアルが複雑だからではなく、[よく知られた理由] によるものです。ここでは、composer の完全な中国語イメージ (http://pkg.phpcomposer.com/) をお勧めします。 「composer設定ファイルを変更する」ことで設定することをお勧めします。

イメージの構成が完了したら、Web サイトを配置するディレクトリ (C:\wwwroot、/Library/WebServer/Documents/、/var/www/html、/etc/nginx/html など) に切り替えます。など) を実行し、コマンド:

composer create-project laravel/laravel learnlaravel5 5.0.22

その後、しばらく待つと、現在のディレクトリに learnlaravel5 というフォルダーが表示されます。

次に、learnlaravel5 のフォルダーの名前を luntan に変更します。

この一連のチュートリアルでは Laravel

5.2 バージョンを使用します。バージョン 5.1 では、この一連のチュートリアルで説明されている主要な要素 (認証システム) が削除されています。5.1 を使用して学習することはお勧めできません。この一連のチュートリアルは、Laravel の基本的な使い方を理解することを目的としています。

フォルダー apache-》conf=》extra=》http-vhosts.conf

を開きます。

次に、Apache 仮想アドレス構成ファイル http-vhosts.conf の最後に、Web サイトのルート ディレクトリを luntan/public として構成します。

在后面添加如下内容<br>a2445d15a37241fe08bac1f84a382b54    DocumentRoot "D:\ampp\htdocs\phpb\luntan\public"    ServerName www.bbs.com    ServerAlias bbs.comee672f0beb03b42be69279368a66a410



次に、メモ帳を使用してフォルダー C:WindowsSystem32driversetc

にある hosts ファイルを開きます

ファイルの最後に次の内容を追加します


127.0.0.1      www.bbs.com127.0.0.1      bbs.com

それでもいいなら」設定方法がわからない場合は、オンラインでたくさんの情報があるので、設定方法を学ぶことをお勧めします。 ***/luntan/public まで設定する必要があることに注意してください。

Apache サーバーを再起動します


ブラウザを使用して設定したアドレスにアクセスすると、次の画面が表示されます (ローカルで設定したアドレスは http://www.bbs.com):

おめでとうございます~ Laravel 5 が正常にインストールされました!

ミラーリングを設定したくない学生は、Laravel 業界で非常に有名な An Zhengchao によって作成されたインストール アーティファクトを使用できます: https://github.com/overtrue/latest-laravel

データベースの作成と移行

3.

Laravel 5.2 でデータベースをインストールする場合 設定場所が `learnlaravel5/.env` に変更されました。このファイルを開き、次の 4 つの項目を正しい情報に編集します:

DB_HOST=localhostDB_DATABASE=luntanDB_USERNAME=rootDB_PASSWORD=password

luntan という名前の新しいデータベースを作成することをお勧めします。学習の便宜上、root アカウントを使用して直接操作することをお勧めします。

Laravel は認証部分の移行を準備しました。次のコマンドを実行してデータベース移行操作を実行します:

php artisan migrate

得られる結果は次のとおりです:

コマンドの実行中にエラーが発生した場合は、次のコマンドを実行してください。データベース接続設定を確認してください。

4. モデル

次に、Laravel の最も強力な部分である Eloquent ORM について触れます。これは、Cook の言葉を借りると、「Goose girl は最高です!」です。

投稿、カテゴリ、コメントに対応するモデルクラスを作成するコマンドを実行します:

php artisan make:model Article
php artisan make:model Category<br />php artisan make:model Comment

> Laravel 4 の時代では、新しいモデルを作成するために Generator プラグインを使用していました。現在、Laravel 5 では Generator が Artisan に統合されています。

さて、Artisan は、`learnlaravel5/app/` の下に 2 つのファイル `Article.php`、Comment.php、および `category.php` を作成するのを手伝ってくれました。これらはすべて、Laravel Eloquent The Model によって提供される 3 つのモデル クラスです。クラス `IlluminateDatabaseEloquentModel` は `App` 名前空間の下にあります。ここで強調しておく必要があるのは、コマンド ラインを使用してファイルを作成することは、手動でファイルを作成することと何ら変わりません。これらの 3 つの Model クラスを自分で作成してみることもできます。

Model は MVC の M であり、モデルとして翻訳され、データベースとの対話を担当します。 Eloquent では、データベース内の各テーブルが Model クラスに対応します (もちろん、複数に対応することもできます)。

如果你从其他框架转过来,可能对这里一笔带过的 Model 部分很不适应,没办法,是因为 Eloquent 实在太强大了啦,真的没什么好做的,继承一下 Eloquent 类就能实现很多很多功能了。

如果你想深入地了解 Eloquent,可以阅读系列文章:深入理解 Laravel Eloquent(一)——基本概念及用法

接下来进行 Article 、Category和Comment  类对应的 articles、categories 表和 comments表的数据库迁移,进入 `luntan/database/migrations` 文件夹。

在 ***_create_articles_table.php 中修改:

<?php<br /><br />use Illuminate\Database\Schema\Blueprint;<br />use Illuminate\Database\Migrations\Migration;<br /><br />class CreateArticlesTable extends Migration<br />{<br />    /**<br />     * Run the migrations.<br />     *<br />     * @return void<br />     */<br />    public function up()<br />    {<br />        Schema::create('articles', function(Blueprint $table)<br />        {<br />            $table->increments('id');<br />            $table->string('user_id');<br />            $table->string('title');<br />            $table->text('content');<br />            $table->integer('category')->default(0);<br />            $table->timestamps();<br />        });<br />    }<br /><br />    /**<br />     * Reverse the migrations.<br />     *<br />     * @return void<br />     */<br />    public function down()<br />    {<br />        Schema::drop('articles');<br />    }<br />}<br /><br />

在 ***_create_categories_table.php 中修改:

aaca38f65f29a4bf7fc1a1e59a64b61eincrements('id');            $table->string('name');            $table->string('color');            $table->timestamps();        });    }    /**     * Reverse the migrations.     *     * @return void     */    public function down()    {        Schema::drop('categories');    }}



在 ***_create_comments_table.php 中修改:

<?php<br /><br />use Illuminate\Database\Schema\Blueprint;<br />use Illuminate\Database\Migrations\Migration;<br /><br />class CreateCommentsTable extends Migration {<br /><br />    /**<br />     * Run the migrations.<br />     *<br />     * @return void<br />     */<br />    public function up()<br />    {<br />        Schema::create('comments', function(Blueprint $table)<br />        {<br />            $table->increments('id');<br />            $table->integer('message_id');<br />            $table->integer('message_user_id');<br />            $table->integer('user_id');<br />            $table->integer('state')->default(0);<br />            $table->string('content');<br />            $table->timestamps();<br />        });<br />    }<br /><br />    /**<br />     * Reverse the migrations.<br />     *<br />     * @return void<br />     */<br />    public function down()<br />    {<br />        Schema::drop('comments');<br />    }<br /><br />}



 

然后执行命令:

php artisan migrate

成功以后, articles 表、catogries和comments 表已经出现在了数据库里,去看看吧~

5. 数据库填充 Seeder

在 `luntan/database/seeds/` 下新建 `ArticleTableSeeder.php` 文件,内容如下:

<?php<br /><br />use Illuminate\Database\Seeder;<br />use App\Article;<br /><br />class ArticleTableSeeder extends Seeder {<br /><br />  public function run()<br />  {<br />    DB::table('articles')->delete();<br /><br />      Message::create([<br />        'user_id'   => '1',<br />        'title'       => '安子尘',<br />        'content'   => '子,安于尘世。',<br />        'category'    =>    '1',<br />      ]);<br />  }<br /><br />}

在 `luntan/database/seeds/` 下新建 `CatogryTableSeeder.php` 文件,内容如下:

bbd6e012d06a9524aa67ed6e0df3406cdelete();      Category::create([      	'id'	=>	'1',        'name'   => '杂谈',        'color'    => '202, 60, 60',      ]);  }}



然后修改同一级目录下的 `DatabaseSeeder.php`中:

// $this->call('UserTableSeeder');

这一句为

$this->call('ArticleTableSeeder');
$this->call('CatogryTableSeeder');

然后运行命令进行数据填充:

composer dump-autoloadphp artisan db:seed

去看看articles 表和categories表,是不是多了一行数据?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。