首頁  >  文章  >  php框架  >  thinkphp文章編輯功能怎麼實現

thinkphp文章編輯功能怎麼實現

PHPz
PHPz原創
2023-04-11 10:31:53580瀏覽

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',
];</p>
<p>}</p>
<p>#接下來,在我們的Index控制器中,我們將使用ORM來取得所有文章,並將它們傳遞到視圖中進行顯示。要實現這一點,我們將使用以下程式碼:</p>
<p><?php<br/>namespace app\article\controller;</p>##use app\article\model\Articles;<p></p>class Index<p>{<br/><pre class="brush:php;toolbar:false">public function index()
{
    // 获取所有文章
    $articles = Articles::select();

    // 渲染视图
    return view(&#39;index&#39;, [
        &#39;articles&#39; => $articles,
    ]);
}</p>}<p></p>在我們的視圖中,我們將顯示所有文章的標題和創建日期,並提供一個鏈接,以便用戶編輯和刪除文章。視圖檔案如下:<p></p><!DOCTYPE html><p><html><br><head><br></p>
<pre class="brush:php;toolbar:false"><title>文章列表</title>

##

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(&#39;create&#39;);
}

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');
}</p>
<p>}</p>
<p>我们的Create控制器中有两个方法:index和create。index方法将渲染我们的表单视图,create方法将获取表单数据并在数据库中创建新的文章。</p>
<p>我们的表单视图将包含一个<form>标记,其中包含“标题”和“主体”输入字段,以及submit按钮。表单视图如下所示:</p>
<p><!DOCTYPE html><br><html><br><head></p>
<pre class="brush:php;toolbar:false"><title>创建文章</title>


创建文章

<label for="title">标题</label>
<input type="text" name="title" id="title">

<label for="body">主体</label>
<textarea name="body" id="body"></textarea>

<button type="submit">创建</button>


在我们的“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');
}</p>
<p>}</p>
<p>我们的Edit控制器中也有两个方法:index和update。index方法将获取当前文章的数据,并渲染我们的表单视图。update方法将获取表单数据并更新文章。</p>
<p>我们的表单视图将包含一个<form>标记,其中包含输入字段,以供用户编辑当前文章的标题和主体。表单视图显示如下:</p>
<p><!DOCTYPE html><br><html><br><head></p>
<pre class="brush:php;toolbar:false"><title>编辑文章</title>


编辑文章

<input type="hidden" name="id" value="<?php echo $article->id; ?>">

<label for="title">标题</label>
<input type="text" name="title" id="title" value="<?php echo $article->title; ?>">

<label for="body">主体</label>
<textarea name="body" id="body"><?php echo $article->body; ?></textarea>

<button type="submit">更新</button>


在我们的“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中文網其他相關文章!