te7a-houdini / response-generate
它将为您添加 generate:response 命令,以帮助您构建响应类
1.0.1
2017-09-01 23:21 UTC
Requires
- php: >=7.0
- illuminate/console: 5.5.*
This package is auto-updated.
Last update: 2024-08-29 04:48:41 UTC
README
此包允许您生成一个实现 Responsable 接口的类
安装
它可以在 Laravel 5.5 或更高版本中使用
您可以通过 composer 安装此包
composer require te7a-houdini/response-generate
在 Laravel 5.5 中,服务提供程序将自动注册,因此您无需在 config/app.php
中注册提供程序
用法
php artisan generate:response ExampleResponse
您将在 App\Http\Responses
命名空间下找到新创建的类,其外观将类似于
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) { } }
示例
假设在您的控制器中您正在执行类似以下操作
public function show($id) { $post = Post::find($id); if (request()->ajax) { return response()->json(['data' => $post]); } else { return view('posts.show',compact('post')); } }
通过使用新生成的响应类,我们可以这样做
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); } } }
鸣谢
资源
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。