hotash / laravel-auto-compose
一个用于自动将路由参数组合到适当视图的PHP包。
1.0.1
2021-02-14 05:57 UTC
Requires
- php: >=7.2.5
- illuminate/routing: ^7.0|^8.0
- illuminate/support: ^7.0|^8.0
- illuminate/view: ^7.0|^8.0
README
一个用于自动将路由参数组合到适当视图的PHP包。
安装
您可以通过composer安装此包
composer require hotash/laravel-auto-compose
用法
不需要做任何事情,只需在视图中使用您的路由参数即可。除非您在控制器中修改了参数,否则不需要从控制器传递参数到视图。
namespace App\Http\Controllers; use App\Models\Product; use Illuminate\Http\Request; class ProductController extends Controller { /** * Display the specified resource. * * @param \App\Models\Product $product * @return \Illuminate\Http\Response */ public function show(Product $product) { // Don't need to pass $product to the view. return view('products.show'); } }
所有路由参数将由laravel-auto-compose
包自动传递到视图中。
详细信息
如果您修改了一个路由参数但没有从控制器传递它到视图,您将丢失这个修改。
namespace App\Http\Controllers; use App\Models\Product; use Illuminate\Http\Request; class ProductController extends Controller { /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $product = Product::with('categories') ->withTrashed() ->findOrFail($id); // Updating $id variable. $id = 'laravel-auto-compose'; return view('products.show'); } }
在上面的例子中,我们没有将$product
传递到我们的视图中。所以,它将不可用。现在,关于$id
呢?嗯,控制器中$id
变量的变化不会影响视图中$id
变量。
为了在我们的视图中看到修改,我们必须从控制器传递$id
变量到我们的视图中。
另一个很好的例子
namespace App\Http\Controllers; use App\Models\Product; use Illuminate\Http\Request; class ProductController extends Controller { /** * Display the specified resource. * * @param \App\Models\Product $product * @return \Illuminate\Http\Response */ public function show(Product $product) { $product = $product->load('categories'); return view('products.show'); } }
我们已经加载了一个关系并更新了$product
变量。
关系在视图中被加载了吗?
是的,它被加载了。但是为什么?
你是一个工匠,我把这个决定留给你。
请求
请考虑给它一个星标。
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献指南。
安全
如果您发现任何安全相关的问题,请通过电子邮件bdsumon4u@gmail.com联系,而不是使用问题跟踪器。
鸣谢
许可
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。