📅  最后修改于: 2023-12-03 14:56:20.758000             🧑  作者: Mango
Laravel 是一个流行的 PHP 开发框架,提供了丰富的功能和良好的可扩展性。本文将介绍如何使用 Laravel 的模型来创建一个简单的平面文件 CMS。
在开始之前,需要确保已经安装了最新版的 Laravel,并且熟悉基本的控制台命令和路由。
首先,需要创建一个模型来代表文章(Post)。可以使用以下 Artisan 命令创建模型:
php artisan make:model Post
该命令将在 app 目录下创建一个名为 “Post” 的模型。
接下来,在 Post 模型中可以定义一些属性,例如 title、content 等。以下是一个示例模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
protected $fillable = ['title', 'content'];
}
接下来需要创建一个控制器来处理与文章相关的请求。可以使用以下 Artisan 命令来创建控制器:
php artisan make:controller PostController --resource
该命令将会在 app/Http/Controllers 目录下创建一个名为 “PostController” 的控制器。
在该控制器中,可以定义若干个方法来处理不同的请求。例如,以下的控制器有 index、create、store、show、edit、update 和 destroy 方法:
<?php
namespace App\Http\Controllers;
use App\Post;
use Illuminate\Http\Request;
class PostController extends Controller
{
public function index()
{
$posts = Post::all();
return view('posts.index', compact('posts'));
}
public function create()
{
return view('posts.create');
}
public function store(Request $request)
{
$post = Post::create($request->all());
return redirect()->route('posts.show', $post->id);
}
public function show(Post $post)
{
return view('posts.show', compact('post'));
}
public function edit(Post $post)
{
return view('posts.edit', compact('post'));
}
public function update(Request $request, Post $post)
{
$post->update($request->all());
return redirect()->route('posts.show', $post->id);
}
public function destroy(Post $post)
{
$post->delete();
return redirect()->route('posts.index');
}
}
在完成控制器之后,可以创建视图文件来呈现文章内容和表单。
你可以在 resources/views/posts 目录下创建若干个视图文件,例如 index.blade.php、show.blade.php、create.blade.php 和 edit.blade.php。
以下是一个简单的 create.blade.php 文件:
@extends('layouts.app')
@section('content')
<h1>Create New Post</h1>
<form action="{{ route('posts.store') }}" method="POST">
@csrf
<div class="form-group">
<label for="title">Title:</label>
<input type="text" name="title" id="title" class="form-control" required>
</div>
<div class="form-group">
<label for="content">Content:</label>
<textarea name="content" id="content" class="form-control" rows="10" required></textarea>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">Create Post</button>
</div>
</form>
@endsection
最后,需要为控制器添加路由。可以在 routes/web.php 文件中添加如下代码:
Route::resource('posts', 'PostController');
该路由将控制器中的不同方法映射到 HTTP 请求。
现在,访问 http://localhost:8000/posts 就可以看到文章列表了。
在本文中,我们通过使用 Laravel 模型、控制器和视图来创建一个简单的平面文件 CMS。这仅仅是 Laravel 的众多功能之一,它还提供了更多高级的选项以满足更多需求。