thinkphp 기사 편집 기능 구현 방법

PHPz
풀어 주다: 2023-04-11 14:11:17
원래의
657명이 탐색했습니다.

ThinkPHP는 빠르고 확장 가능하며 유지 관리가 쉬운 웹 애플리케이션 개발에 사용되는 MVC 개발 모델을 기반으로 하는 PHP 프레임워크입니다. 이 기사에서는 ThinkPHP 프레임워크의 강력한 기능을 사용하여 웹 애플리케이션에서 간단한 기사 편집 기능을 구현하는 방법을 배웁니다.

기사 작성, 편집, 삭제 기능이 포함된 "기사"라는 모듈을 만들겠습니다. 데이터베이스부터 시작하여 제목, 내용, 상태 등 기사의 다양한 속성을 저장할 새 데이터 테이블 "기사"를 생성하겠습니다.

먼저 임의의 이름으로 데이터베이스를 만들어야 합니다. 이 데이터베이스 내에 "articles"라는 새 테이블을 만듭니다. 이 테이블에는 다음 열이 있습니다.

id – 각 게시물의 고유 식별자이며 정수, 기본 키 및 자동 증가 형식입니다.

title – 기사의 제목이며 문자열이며 최대 50자입니다.

body – 기사의 본문으로, 하나의 큰 텍스트가 됩니다.

status – 기사의 상태이며 부울 값입니다.

created_at – 기사가 생성된 날짜 타임스탬프이며 정수입니다.

updated_at – 기사가 마지막으로 업데이트된 날짜 타임스탬프이며 정수입니다.

다음으로 우리 프로젝트에서는 "Article"이라는 모듈을 생성할 것입니다. 터미널에서 다음 명령을 사용하여 새 모듈을 생성할 수 있습니다:

php think module Article

이것은 "라는 이름의 모듈 생성에 있을 것입니다. 기사'를 프로젝트에 추가하세요. 이 모듈에는 색인, 생성, 편집, 삭제 및 업데이트 컨트롤러가 포함됩니다. "Article" 모델에서 Articles 테이블을 정의하고 "Article"의 Index 컨트롤러에서 기사 목록을 구현하겠습니다.

우리 모델에서는 ThinkPHP ORM을 사용하여 Articles 테이블을 정의해야 합니다. Articles 테이블을 정의하기 위해 모델 파일에 다음 코드를 추가할 수 있습니다.

namespace apparticlemodel;

use thinkModel;

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>Next, in 인덱스 컨트롤러에서는 ORM을 사용하여 모든 기사를 가져와서 표시할 뷰에 전달합니다. 이를 달성하기 위해 다음 코드를 사용합니다: </p>
<p><?php 제목 및 생성 날짜, 사용자가 기사를 편집하고 삭제할 수 있는 링크를 제공합니다. 보기 파일은 다음과 같습니다: <br/></p><!DOCTYPE html></p>
<p><html></p><head><p></p>
<pre class="brush:php;toolbar:false">public function index()
{
    // 获取所有文章
    $articles = Articles::select();

    // 渲染视图
    return view('index', [
        'articles' => $articles,
    ]);
}
로그인 후 복사

기사 목록



Title

Creation Date

Action

제목 ?> created_at) ?> 수정삭제

">创建文章


在我们的“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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿