美文网首页
Laravel6.X资源控制器Restful控制器教程

Laravel6.X资源控制器Restful控制器教程

作者: 前端组件库 | 来源:发表于2020-02-01 23:05 被阅读0次

Laravel资源控制器是非常简便的做增改删查的方式。那么我们就开始做一个例子。

1.执行命令做资源控制器,模型文件和工厂文件。

php artisan make:model Post -m -f
php artisan make:controller PostsController --resource --model=Post

第一个命令执行了以后做一个模型文件,连同迁移和工厂文件。
第二个命令创建一个资源控制器,对应这个模型。
我们先来看看资源控制器的内容:

<?php

namespace App\Http\Controllers;

use App\Post;
use Illuminate\Http\Request;

class PostsController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Post  $post
     * @return \Illuminate\Http\Response
     */
    public function show(Post $post)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Post  $post
     * @return \Illuminate\Http\Response
     */
    public function edit(Post $post)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Post  $post
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Post $post)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Post  $post
     * @return \Illuminate\Http\Response
     */
    public function destroy(Post $post)
    {
        //
    }
}

这里就是我们要做的全部方法。接下来我们填充下假数据。

2.填充假数据

php artisan tinker
factory(\App\Post::class, 40)->create();

这样我们假数据就填充完了。接下来我们做视图文件。

3.加路由代码

Route::resource('posts', 'PostsController');

4.修改模型文件fillable属性 App/Post.php

protected $fillable = [ 'title', 'description'];

5.控制器代码:

<?php

namespace App\Http\Controllers;

use App\Post;
use Illuminate\Http\Request;

class PostsController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $posts = Post::all();
        return view('posts.index', compact("posts"));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
        return view('posts.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        Post::create($request->all());
        return redirect()->route('posts.index');
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Post  $post
     * @return \Illuminate\Http\Response
     */
    public function show(Post $post)
    {
        return view('posts.show', compact('post'));
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Post  $post
     * @return \Illuminate\Http\Response
     */
    public function edit(Post $post)
    {
        return view('posts.edit', compact('post'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Post  $post
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Post $post)
    {
        $post->update($request->all());
        return redirect()->back();
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Post  $post
     * @return \Illuminate\Http\Response
     */
    public function destroy(Post $post)
    {
        $post->delete();
        return redirect()->route('posts.index');
    }
}

6.做视图文件

在resources/views/posts文件夹下面创建create.blade.php, index.blade.php, edit.blade.php, show.blade.php。
index.blade.php

@foreach($posts as $post)
    <a href="{{route('posts.show', $post->id)}}">{{$post->title}}</a><br>
    {{$post->description}}<br>
@endforeach

show.blade.php, 把删除按钮放在上面:

{{$post->title}}<br>
{{$post->description}}<br>

<form action="{{route('posts.destroy', $post->id)}}" method="post">
    @csrf
    @method('delete')
    <input type="submit" value="删除">
</form>

<a href="{{route('posts.edit')}}">修改</a>

create.blade.php的代码:

<form action="{{route('posts.store')}}" method="post">
    @csrf
    <input type="text" name="title" id="">
    <input type="text" name="description" id="">
    <input type="submit" value="提交">
</form>

edit.blade.php的代码:

<form action="{{route('posts.update', $post->id)}}" method="post">
    @csrf
    @method('PUT')
    <input type="text" name="title" value="{{$post->title}}">
    <input type="text" name="description" value="{{$post->description}}">
    <input type="submit" value="提交">
</form>

相关文章

  • Laravel6.X资源控制器Restful控制器教程

    Laravel资源控制器是非常简便的做增改删查的方式。那么我们就开始做一个例子。 1.执行命令做资源控制器,模型文...

  • 控制器

    控制器 资源控制器 必须 优先使用 Restful 资源控制器。 单数 or 复数? 必须 使用资源的复数形式,如...

  • Laravel-RestfulAPI 资源控制器

    laravel里有基本控制器和控制器路由。不过我们这里介绍另一种风格--RESTFul。具体的RESTFul风格及...

  • Pod控制器

    Pod控制器 control plane (Master)API server: gateway,restful风...

  • 03.laravel的controller

    1.创建普通控制器 使用函数响应结果 2.创建资源控制器 控制器自带7个资源方法 3.控制器的函数返回值 a.直接...

  • YII RESTful api 授权认证

    配置 User model 实现方法 RESTful api控制器 如果控制器里面有些方法不需要进行认证呢 我网...

  • laravel 控制器

    1.创建最简单的控制器 --------UserController控制器名称 内容 2.创建资源控制器 内容 ...

  • 4 - laravel 基础 - 控制器

    laravvel 控制器基本使用 创建普通控制器 控制器的命名空间 在使用路由是注意控制器的命名空间 创建资源控制...

  • Unity动画

    Animator(Mecanim动画系统组件) AnimatorController动画控制器(动画控制器资源相当...

  • SpringMVC之Controller及RestFul

    四、Controller及RestFul 目录:控制器Controller、实现Controller接口、注解@C...

网友评论

      本文标题:Laravel6.X资源控制器Restful控制器教程

      本文链接:https://www.haomeiwen.com/subject/qgkfxhtx.html