te7a-houdini/response-generate
Composer 安装命令:
composer require te7a-houdini/response-generate
包简介
it will add generate:response command to help you in scaffolding response classes
README 文档
README
This package allows you to generate a class that implements Responsable Interface
Installation
it can be used in Laravel 5.5 or higher
You can install the package via composer:
composer require te7a-houdini/response-generate
In Laravel 5.5 the service provider will automatically get registered. so you don't have to register the provider in config/app.php
Usage
php artisan generate:response ExampleResponse
you will find a new class created under App\Http\Responses namespace which will look like
namespace App\Http\Responses; use Illuminate\Contracts\Support\Responsable; class ExampleResponse implements Responsable { /** * Create an HTTP response that represents the object. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function toResponse($request) { } }
Example
lets say in your controller you are doing something like that
public function show($id) { $post = Post::find($id); if (request()->ajax) { return response()->json(['data' => $post]); } else { return view('posts.show',compact('post')); } }
by using the new generated response class we can do that
public function show($id) { $post = Post::find($id); return new PostResponse($post); }
class PostResponse implements Responsable { protected $post; public function __construct ($post) { $this->post = $post; } /** * Create an HTTP response that represents the object. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function toResponse($request) { if ($request->ajax()) { return response()->json(['data' => $this->post]); } else { return view('posts.show',$post); } } }
Credits
Resources
License
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 10
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 7
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-09-01