当前位置: 首页 > article >正文

laravel8快速开发简单博客系统(二)

目录

一、创建文章增删改成提交的控制器

1、注释文章查看权限,非登录状态可以查看文章列表页

2、创建提交控制器post

3、创建数据表

4、创建提交post资源路由

5、创建post控制器view目录post

二、文章添加功能实现

1.模板显示

2.复制home.blade.php模板到post下命名为create.blade.php

 3、控制器实现post

三、文章修改

1、控制器显示post

2、创建edit.blade.php模板文件

3、文章修改保存控制器

四、文章列表显示

1、模板文件home.blade.php

五、删除文章

1、模板home.blade.php

2、删除控制器post


laravel8快速开发简单博客系统(一)-CSDN博客

一、创建文章增删改成提交的控制器

1、注释文章查看权限,非登录状态可以查看文章列表页

   注释HomeController.php下//$this->middleware('auth');

修改模板文件

运行Sooma

2、创建提交控制器post

php artisan make:model Post --migration --resource

创建资源控制器(自动生成增删改查方法)和数据表

成功多了以下文件

 

3、创建数据表

增加数据表字段

更新数据表

php artisan migrate

 

4、创建提交post资源路由
Route::get('/', [App\Http\Controllers\HomeController::class, 'index'])->name( 'home');
Route::resource('/posts',App\Http\Controllers\PostController::class)->middleware('auth');

5、创建post控制器view目录post

 

二、文章添加功能实现

1.模板显示

2.复制home.blade.php模板到post下命名为create.blade.php

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <h2>提交</h2>
            @if($errors->any())
                <div class="alert alert-danger">
                    <ul>
                        @foreach( $errors->all() as $error)
                            <li>{{ $error }}</li>
                        @endforeach
                    </ul></div>
            @endif
            @if(session('success'))
                <div class='alert alert-success'>Updated Successfully!</div>
            @endif
            <form action="{{ route('posts.store') }}" method="post">
                @csrf
                <div class="form-group">
                    <label for="title">标题</label>
                    <input type="text" class="form-control" id="title" name="title">
                </div>
                <div class="form-group">
                    <label for="title">内容</label>
                    <textarea  class="form-control" id="content" name="content" role="4"></textarea>
                </div>
                <button type="submit" class="btn btn-primary">提交</button>
            </form>



        </div>
    </div>
</div>
@endsection
 3、控制器实现post
    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
        $request->validate(['title'=>'required','content'=>'required']);
        $post=new Post;
        $post->title=request('title');
        $post->content=request('content');
        $post->uid=\Auth::id();
        $post->save();
       return redirect()->to('/');
    }

三、文章修改

1、控制器显示post
  /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Models\Post  $post
     * @return \Illuminate\Http\Response
     */
    public function edit(Post $post)
    {
        //
        return  view('post.edit',compact('post'));
    }
2、创建edit.blade.php模板文件
@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <h2>修改提交</h2>
            @if($errors->any())
                <div class="alert alert-danger">
                <ul>
                    @foreach( $errors->all() as $error)
                        <li>{{ $error }}</li>
                    @endforeach
                </ul></div>
            @endif
            @if(session('success'))
                <div class='alert alert-success'>Updated Successfully!</div>
             @endif
            <form action="{{ route('posts.update',[$post->id]) }}" method="post">
                @csrf
                @method('put')
                <div class="form-group">
                    <label for="title">标题</label>
                    <input type="text" class="form-control" id="title" name="title" value="{{ $post->title }}">
                </div>
                <div class="form-group">
                    <label for="title">内容</label>
                    <textarea  class="form-control" id="content" name="content" role="4" >{{ old('content',$post->content) }}</textarea>
                </div>
                <button type="submit" class="btn btn-primary">提交</button>
            </form>



        </div>
    </div>
</div>
@endsection
3、文章修改保存控制器
   public function update(Request $request, Post $post)
    {
        $request->validate(['title'=>'required','content'=>'required']);
        $post->title=request('title');
        $post->content=request('content');
        $post->uid=\Auth::id();
        $post->save();
        return redirect()->route('posts.edit',[$post->id])->with('success',true);
    }

四、文章列表显示

1、模板文件home.blade.php
@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            @foreach(App\Models\Post::orderBy('created_at','DESC')->get() as $post)
            <div class="card">
                <div class="card-header">{{ $post->id }}&&{{ $post->title }}*****{{ $post->created_at }}</div>
               <a href="{{ route('posts.edit',[$post->id] ) }}">修改</a>
                     <form action="{{ route('posts.destroy',[$post->id]) }}" method="post">
                    <button type="submit" class="btn alert-danger"><a href="#">删除</a></button>
              @csrf
               @method('delete')
                </form>

                <div class="card-body">
               {{ $post->content }}
                </div>
            </div>
                @endforeach
        </div>
    </div>
</div>
@endsection

五、删除文章

1、模板home.blade.php
  <form action="{{ route('posts.destroy',[$post->id]) }}" method="post">
                    <button type="submit" class="btn alert-danger"><a href="#">删除</a></button>
                 @csrf
                  @method('delete')
                </form>
2、删除控制器post
    public function destroy(Post $post)
    {
        //
        $post->delete();
        return redirect()->to('/');
    }


http://www.kler.cn/news/288670.html

相关文章:

  • HarmonyOS NEXT实战:“相机分段式拍照”性能提升实践
  • 深度学习100问11:什么是one-hot编码
  • Anaconda安装和环境配置教程(深度学习准备)
  • 用SQL语句 对时间进行周期计算week(date,mode)
  • SAP B1 三大基本表单标准功能介绍-物料主数据(下)
  • ClickHouse实时探索与实践 京东云
  • 使用LLaMA-Factory快速训练自己的专用大模型
  • 空间计量 | 似不相关回归SUR
  • k8s的Service和持久化存储
  • B端系统门门清之:CRM-客户管理系统,客户是一切的源头。
  • 动态规划---分割等和子集
  • 8.30-使用docker容器部署考试项目+使用Dockerfile部署java项目
  • 视频:Python深度学习量化交易策略、股价预测:LSTM、GRU深度门控循环神经网络|附代码数据...
  • (十五)SpringCloudAlibaba-Sentinel持久化到Nacos
  • python图像处理基础(skimage、PIL、OpenCV)
  • Java设计模式之建造者模式详细讲解和案例示范
  • JVM面试(二)内存区域划分
  • 无人机专业大学生参与无人机飞手执照培训技术分析
  • 【CPP 基础】如何把cpp库,分装给 c# 用。
  • 数据结构---线性表--栈和队列
  • ActiveMQ实战指南:实现发布/订阅(publish-subscribe)消息发送!
  • Unity Android 进阶之 【Android 添加一个启动动画】在Unity场景加载完之前,避免 【Unity 启动界面慢 黑屏时间长】的情况
  • 青远生态为云南林业规划院定制开发的自然保护地规划智能编制系统顺利通过验收
  • Golang | Leetcode Golang题解之第385题迷你语法分析器
  • Java图形用户界面之Applet设计
  • python django 使用教程
  • 使用 streamlink 把 m3u8 转为 mp4
  • 代码随想录 刷题记录-24 图论 (1)理论基础 、深搜与广搜
  • 保姆级Maven安装、配置、版本查询教程(包含配置本地仓库、阿里云私服、环境变量)
  • 射频指纹特征提取:揭秘无线通信设备的身份标识