laravel 5.4搭建多人博客系统教程(一)

in php •  7 years ago 

laravel 5.4搭建多人博客系统教程(一)

运用了laravel 5.4 结合vue来构建,仿照了 简书的模式和小部分功能,这里用vue的模式是采用了单组件的模式,也就是没有用到vue-router,vue部分会在laravel构建完成后讲到。

1.首先来配置php环境

由于本文基于laravel5.4,所以PHP版本需要 >=5.6.4,
本人采用了mac 的 MAMP 默认配置了php 7 的环境,比较方便快捷。注意确认没有安装过mysql。装好了就能启动mamp了,接着这里需要配置php环境变量为MAMP中php的环境变量 。
首先:
vim ~/.bashrc
接着加入下面代码(如果不会操作vim,这里先按 i ,下面有个inster标志,就可以编辑了,复制完成按下 esc,然后输入 :wq 表示保存退出,:q表示不保存退出)

PHP_VERSION=`ls /Applications/MAMP/bin/php/ | sort -n | tail -1`
export PATH=/Applications/MAMP/bin/php/php7.0.1/bin:$PATH

其中php7.0.1填写你自己mamp中php版本文件目录。
如果再装不好就自行google吧。

2.安装composer

安装composer,不要觉得这个很难安装,so easy,4行代码
1.任意位置都可以,输入下面代码,会下载一个composer-setup.php文件
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
2.运行文件,此刻已经安装好了。会生成一个composer.phar文件,这个就是核心了。
php composer-setup.php
3.删除composer-setup.php文件,这步可以不用操作,强迫症就执行了吧。
php -r "unlink('composer-setup.php');"
4.全局安装,也就是将安装好的composer.phar文件移动到全局环境中。
sudo mv composer.phar /usr/local/bin/composer

以上4步就安装好了composer。
不懂可以看这篇文章 链接

3.安装laveral

进入项目目录 运行
composer create-project laravel/laravel blog
如果下载不好也可以搜索一键安装包,直接放到项目目录里。
官方一键安装包地址 : 链接

4.运行

这里我们使用了MAMP,在浏览器输入http://localhost:8888/blog/public

5.使用auth系统

在blog项目目录里,输入以下代码,就装好了auth系统,使用laravel自带的登录注册等功能。
php artisan make:auth

6.连接数据库

a. 修改配置

打开 .env文件,修改下面几行的值:

DB_HOST=127.0.0.1  
DB_PORT=3306  
DB_DATABASE=blog  
DB_USERNAME=root  
DB_PASSWORD=root 

mamp 的mysql貌似默认密码是root
这里不能直接进行到下一步必须先修改一个配置,有些网上教程没有提到这一点,也可能是laravel 5.4版本的原因。
解决办法: 打开app -> Providers -> AppServiceProvider.php加入以下代码

use Illuminate\Support\Facades\Schema;  // 这行要加入
class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        Schema::defaultStringLength(191);   // 这行要加入
    }
}
b. 进行数据库迁移(migration)

也是一行命令,方便快捷。
php artisan migrate

好了,到这里,已经搭建好了登录注册的基本功能。个人是从yii2过度到node的express再接触laravel,在项目构建速度上yii2采用gii,laravel采用artisan,个有各的好处,laravel配合composer更有点用node的感觉,很快捷。

7.文章 Article模块的构建

首先,一行命令。然后在 app 目录里,就生成好了 Article.php 的model文件
php artisan make:model Article

8.使用 Migration 和 Seeder

接下来我们生成对应 Article 这个 Model 的 Migration 和 Seeder。

a. 使用 artisan 生成 Migration

接着一行命令
php artisan make:migration create_article_table

运行成功之后打开blog/database/migrations,你会发现有一个名为 2017_02_25_123212313_create_article_table 的文件被创建了。我们修改他的 up 函数为:

public function up() 
{
    Schema::create('articles', function(Blueprint $table) {
        $table->increments('id');
            $table->string('title');
            $table->string('description');
            $table->string('image_path')->nullable();
            $table->string('self_sign')->nullable();
            $table->text('body')->nullable();
            $table->integer('user_id');
            $table->integer('cate_id');
            $table->integer('common_id');
            $table->integer('like_id');
              $table->integer('like_num');
            $table->timestamps();
    });
}

以上包括文章的信息和评论,分类,点赞,图片图片等数据表的预留。
接着又到了一行命令时间:
php artisan migrate
然后看看mysql中是否生成了数据表。

b. 使用 artisan 生成 Seeder

seeder就是填入一些假数据,来方便我们测试。
接着你懂滴,
php artisan make:seeder ArticleSeeder

我们会发现 blog/database/seeds 里多了一个文件 ArticleSeeder.php,修改此文件中的 run 函数:

public function run()  
{
    DB::table('articles')->delete();
        for ($i=0; $i < 10; $i++) {
            DB::table('articles')->insert([
                'title'   => 'Title '.$i,
                'body'    => 'Body '.$i,
                'description'    => 'description '.$i,
                'self_sign'    => 'self_sign '.$i,
                'user_id' => 1,
                'common_id' => 1,
                'cate_id' => 1,
                'like_id' => 1,
                'like_num' => 243,
            ]);
        }
}

接下来我们把 ArticleSeeder 注册到系统内。修改 blog/database/seeds/DatabaseSeeder.php 中的 run 函数为

public function run()  
{
    $this->call(ArticleSeeder::class);
}

然后运行下面命令
composer dump-autoload

接着再填入数据
php artisan db:seed

以上便是系列一教程,继续请查看系列二教程,如果有不懂的地方,可以联系我,我就是野山椒鸡杂,野山椒鸡杂就是我。 -> _ ->
[email protected]

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

写的很棒~

好棒