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
如果都显示空白界面(因为我们试图文件上没有任何内容),则说明一切正常。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: