Laravel5.8 入门系列四,实现内容发布系统的准备工作

在这一节,要讲的内容是添加一个内容发布的功能,实现网站内容的增删改查功能。在这之前,先要完成一些准备工作。

创建数据表

使用php artisan make:migration create_posts_table创意一个表迁移文件/database/migrations/xxxx_create_posts_table.php,生成数据表posts的数据迁移内容如下:

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreatePostsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('posts');
    }
}

默认会添加一个主键id,以及时间戳(添加时间,更新时间)字段。我们需要完善posts表的数据结构。修改up方法如下内容:

    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('title')->comment('标题');
            $table->string('sub_content')->comment('摘要');
            $table->text('content')->comment('内容');
            $table->bigInteger('user_id')->comment('发布人id');
            $table->timestamps();
        });
    }

在数据表中添加标题,摘要,内容,发布人id字段。

执行数据迁移命令php artisan migrate生成表结构。

创建必要的文件
1. 创建模型

数据表已经创建了,我们还需要创建一个模型文件,用来操作数据表posts。使用命令php artisan make:model Models\\Post创建数据模型。命令会在App目录下创建Models文件夹,并在Models文件夹下创建Post.php文件。

注意,默认情况下,数据表是模型的复数形式。如果你的模型于表名直接关系不符合这个关系,则需要在生成的模型文件中添加$table属性,显示指定表名。

<?php
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    protected $table = 'posts';
}
2. 创建控制器文件

Laravel所有的控制都在App\Http\Controllers目录下。我们可以把相同的功能控制器组织到一个文件夹下,文件夹推荐首字母大写。

使用命令php artisan make:controller Front\\PostController将会在App\Http\Controllers目录下创建Front目录,并创建PostController.php文件。我们用PostController.php实现数据的增删改查功能。

PostController文件中分别添加add,store,edit,save,destory,index,detail方法,分别代表显示添加界面,保存新增数据,显示编辑界面,保存编辑数据,删除内容,显示列表数据,显示详情数据 方法。

<?php

namespace App\Http\Controllers\Front;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class PostController extends Controller
{
	/**
	 * 显示新增界面
	 */
    public function add(){
    	return view('front.post.add');
    }

    /**
     * 保存新增内容
     */
    public function store(){

    }

    /**
     * 显示内容编辑界面
     */
    public function edit($id){
    	return view('front.post.edit');
    }

    /**
     * 保存编辑内容
     */
    public function save(){

    }

    /**
     * 删除内容
     */
    public function destory($id){

    }

    /**
     * 显示内容列表
     */
    public function index(){
    	return view('front.post.index');
    }

    /**
     * 显示内容详情界面
     */
    public function detail($id){
    	return view('front.post.index');
    }
}
3. 添加试图界面

我们需要添加,编辑详情列表四个试图界面。一样的,我们还是把相同功能的试图文件放在一个文件夹下。对于试图文件的创建,并没有什么命令,只能自己手动创建了。

resource/views目录下创建front文件夹,在front问价夹下创建post文件夹。在post问价夹下创建index.blade.php,add.blade.php,edit.blade.php,detail.blade.php四个文件,内容先不管。

路由文件添加操作路由

为了访问控制器提供的方法,我们需要在路由文件routes/web.php中添加操作路由。将下列内容添加在web.php文件最下方:

Route::get('/post/add','Front\PostController@add')->name('post.add');
Route::post('/post/store','Front\PostController@store')->name('post.store');
Route::get('/post/edit/{id}','Front\PostController@edit')->name('post.edit');
Route::post('/post/save','Front\PostController@save')->name('post.save');
Route::get('/post/detail/{id}','Front\PostController@detail')->name('post.detail');
Route::get('/post/index','Front\PostController@index')->name('post.index');
Route::post('/post/destory/{id}','Front\PostController@destory')->name('post.destory');

准备工作一切就绪,我们准备好了内容发布功能增删改查需要的整体骨架,接下来直接在对应的方法里填上逻辑代码就可以了。现在,先访问下列地址,验证准备工作是否正确完成。

http://localhost:8000/post/index
http://localhost:8000/post/add
http://localhost:8000/post/edit/1
http://localhost:8000/post/detail/1

如果都显示空白界面(因为我们试图文件上没有任何内容),则说明一切正常。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值