ThinkPHP是一種基於MVC開發模式的PHP框架,用於快速、可擴展且易於維護的Web應用程式的開發。在本文中,我們將學習如何使用ThinkPHP框架的強大功能,在Web應用程式中實作簡單的文章編輯功能。
我們將建立一個名為「Article」的模組,這個模組將包含文章的建立、編輯和刪除功能。我們將從資料庫開始,建立一個新的資料表“articles”,它將儲存文章的各種屬性,如標題、內容和狀態。
首先,我們需要建立一個資料庫,名稱隨意。在該資料庫中,我們將建立一個新的表,命名為「articles」。這個表將具有以下列:
id – 這是每篇文章的唯一標識符,它將是一個整數,主鍵和自動遞增。
title – 這是文章的標題,它將是一個字串,最長50個字元。
body – 這是文章的主體內容,它將是一個大文字。
status – 這是文章的狀態,它將是一個布林值。
created_at – 這是文章創建的日期時間戳,它將是一個整數。
updated_at – 這是文章最近更新的日期時間戳,它將是一個整數。
接下來,在我們的專案中,我們將建立一個名為「Article」的模組,我們可以透過在終端機中使用以下命令建立一個新的模組:
php think module Article
這將在我們的專案中建立一個名為「Article」的模組。此模組將包含以下控制器:Index,Create,Edit,Delete和Update。我們將在「Article」的模型中定義Articles表,並在「Article」的Index控制器中實作文章清單。
在我們的模型中,我們需要使用ThinkPHP ORM來定義Articles表。我們可以將以下程式碼加入模型檔中,以便定義Articles表:
namespace app\article\model;
use think\Model;
class Articles extends Model
{
// 数据表名 protected $table = 'articles'; // 主键名 protected $pk = 'id'; // 字段定义 protected $schema = [ 'id' => 'int', 'title' => 'string', 'body' => 'text', 'status' => 'boolean', 'created_at' => 'int', 'updated_at' => 'int', ];}
#接下來,在我們的Index控制器中,我們將使用ORM來取得所有文章,並將它們傳遞到視圖中進行顯示。要實現這一點,我們將使用以下程式碼:
namespace app\article\controller;
##use app\article\model\Articles;class Index{
public function index() { // 获取所有文章 $articles = Articles::select(); // 渲染视图 return view('index', [ 'articles' => $articles, ]); }}在我們的視圖中,我們將顯示所有文章的標題和創建日期,並提供一個鏈接,以便用戶編輯和刪除文章。視圖檔案如下:
文章列表 登入後複製
##
public function index() { // 渲染视图 return view('create'); } public function create(Request $request) { // 获取表单数据 $title = $request->param('title'); $body = $request->param('body'); // 创建新文章 $article = new Articles(); $article->title = $title; $article->body = $body; $article->status = true; $article->created_at = time(); $article->updated_at = time(); $article->save(); // 跳转到文章列表页面 return redirect('/article/index'); }
標題 | 建立日期 | 操作 |
---|---|---|
title; ?> | created_at); ?> | $article->id]); ?>">編輯刪除 |
在我们的“Article”的Create控制器中,我们将显示一个表单,以供用户创建新的文章。表单将包含标题和主体字段,以及submit按钮。我们将使用以下代码来实现:
namespace app\article\controller;
use app\article\model\Articles;
use think\Request;
class Create
{
public function index() { // 渲染视图 return view('create'); } public function create(Request $request) { // 获取表单数据 $title = $request->param('title'); $body = $request->param('body'); // 创建新文章 $article = new Articles(); $article->title = $title; $article->body = $body; $article->status = true; $article->created_at = time(); $article->updated_at = time(); $article->save(); // 跳转到文章列表页面 return redirect('/article/index'); }}
我们的Create控制器中有两个方法:index和create。index方法将渲染我们的表单视图,create方法将获取表单数据并在数据库中创建新的文章。
我们的表单视图将包含一个
在我们的“Article”的Edit控制器中,我们将显示与Create视图相似的表单,但是表单将包含当前文章的标题和主体字段。我们将使用以下代码实现:
namespace app\article\controller;
use app\article\model\Articles;
use think\Request;
class Edit
{
public function index(Request $request) { // 获取文章ID $id = $request->param('id'); // 获取文章 $article = Articles::find($id); // 渲染视图 return view('edit', [ 'article' => $article, ]); } public function update(Request $request) { // 获取表单数据 $id = $request->param('id'); $title = $request->param('title'); $body = $request->param('body'); // 更新文章 $article = Articles::find($id); $article->title = $title; $article->body = $body; $article->updated_at = time(); $article->save(); // 跳转到文章列表页面 return redirect('/article/index'); }}
我们的Edit控制器中也有两个方法:index和update。index方法将获取当前文章的数据,并渲染我们的表单视图。update方法将获取表单数据并更新文章。
我们的表单视图将包含一个
在我们的“Article”的Delete控制器中,我们将删除当前文章。我们将使用以下代码实现:
namespace app\article\controller;
use app\article\model\Articles;
use think\Request;
class Delete
{
public function index(Request $request) { // 获取文章ID $id = $request->param('id'); // 删除文章 Articles::destroy($id); // 跳转到文章列表页面 return redirect('/article/index'); }}
我们的Delete控制器中只有一个方法:index。这个方法将获取当前文章的ID,并从数据库中删除它。然后,它将重定向到文章列表页面。
现在我们已经完成了我们的“Article”模块。我们可以在我们的应用程序中使用以下URL访问它:
/article/index – 文章列表
/article/create – 创建文章
/article/edit/id – 编辑文章
/article/delete/id – 删除文章
我们已经成功地使用ThinkPHP框架创建了一个简单的文章编辑应用程序。现在,我们可以使用这些知识来创建更复杂的Web应用程序。
以上是thinkphp文章編輯功能怎麼實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!