当前位置: 首页 > 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/a/288670.html

相关文章:

  • 【面试题】发起一次网络请求,当请求>=1s,立马中断
  • 前端神经网络入门(三):深度学习与机器学习的关系、区别及核心理论支撑 - 以Brain.js示例
  • C++ 数组与结构 编程练习
  • 每日一练:二分查找-搜索插入位置
  • mac终端使用pytest执行iOS UI自动化测试方法
  • 《MYSQL45讲》误删数据怎么办
  • 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# 用。
  • 数据结构---线性表--栈和队列