Laravel 控制器controller 和 资源controller

 

  位置:   app\Http\Controllers  ... ...

  

  单一操作控制器:   class   ShowFile     /   public function __invoke()    

          Route::get('/show' ,'ShowFile', ); 

          为单一操作控制器注册路由时,无需指定方法:

  

  中间件:

      Route::get('profile', 'UserController@show')->middleware('auth'); 

 

      控制器构造方法中使用 middleware 方法,你可以很容易地将中间件指定给控制器操作。你甚至可以约束中间件只对控制器类中的某个特定方法生效:

    

class UserController extends Controller
{
    /**
     * 创建一个新的控制器实例。
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');

        $this->middleware('log')->only('index');

        $this->middleware('subscribed')->except('store');
    }
}

 

   闭包的方式使用:

    $this->middleware(function ($request, $next) {
       // ...
          return $next($request);
    });

 

 

资源型控制器:

  http://d.laravel-china.org/docs/5.4/controllers#资源控制器

 

  php artisan make:controller ArticleController  --resource

  Route::reource('articles' , 'ArticleController') 

指定资源模型

如果你使用了路由模型绑定,并且想在资源控制器的方法中对某个模型实例做类型约束,你可以在生成控制器的时候使用 --model 选项:

php artisan make:controller PhotoController --resource --model=

 

 

      控制器和对应的操作:

<?php

namespace App\Http\Controllers;

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

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

        $posts = Post::all();


        return  compact('posts');
    }

    /**
     * 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)
    {
        //
    }
}

 

 

资源控制器操作处理

动作URI操作路由名称
GET /photos index photos.index
GET /photos/create create photos.create
POST /photos store photos.store
GET /photos/{photo} show photos.show
GET /photos/{photo}/edit edit photos.edit
PUT/PATCH /photos/{photo} update photos.update
DELETE /photos/{photo} destroy photos.destroy
posted @ 2017-08-27 18:58  silvercell  阅读(2139)  评论(0)    收藏  举报