thinkphpの記事編集機能の実装方法

PHPz
リリース: 2023-04-11 14:11:17
オリジナル
658 人が閲覧しました

ThinkPHP は、MVC 開発モデルに基づく PHP フレームワークで、高速でスケーラブルで保守が容易な Web アプリケーションの開発に使用されます。この記事では、ThinkPHP フレームワークの機能を使用して、Web アプリケーションに簡単な記事編集機能を実装する方法を学びます。

記事の作成、編集、削除の機能を含む「Article」というモジュールを作成します。まずデータベースから始めて、タイトル、内容、ステータスなどの記事のさまざまなプロパティを保存する新しいデータ テーブル「articles」を作成します。

まず、ランダムな名前でデータベースを作成する必要があります。このデータベース内に、「articles」という名前の新しいテーブルを作成します。このテーブルには次の列があります。

id ​​– これは各記事の一意の識別子であり、整数、主キー、および自動インクリメントになります。

title – これは記事のタイトルで、最大 50 文字の文字列になります。

本文 – これは記事の本文であり、1 つの大きなテキストになります。

status – これは記事のステータスであり、ブール値になります。

created_at – これは記事が作成されたときの日付タイムスタンプであり、整数になります。

updated_at – これは記事が最後に更新されたときの日付タイムスタンプであり、整数になります。

次に、プロジェクトで「Article」というモジュールを作成します。ターミナルで次のコマンドを使用して、新しいモジュールを作成できます:

php think module Article

これにより、プロジェクトに「Article」というモジュールが作成されます。このモジュールには、インデックス、作成、編集、削除、および更新のコントローラーが含まれます。 「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> 次に、インデックス コントローラーで、ORM を使用してすべての記事を取得し、それらを渡して表示します。景色。これを実現するには、次のコードを使用します: </p>
<p><?php<br/>namespace app\article\controller;</p><p>use app\article\model\Articles;</p><p>class Index<br/>{</p><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>
<p><!DOCTYPE html><br><html><br><head></p>
<pre class="brush:php;toolbar:false"><title>文章列表</title>
ログイン後にコピー


< body>

記事リスト

タイトル 作成日 アクション
< ?php echo $article->title; ?>created_at); ?> $article->id]); ?>">編集 $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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート