我有一个模型,称为Tours和控制器ToursController,它使用restful方法(索引,显示,存储,编辑,更新等)。
现在我有了这段代码:
$names = request()->get('names');
$lastnames = request()->get('lastnames');
$hotels = request()->get('hotel');
在Store和Update中。所以我复制相同的代码两次。这只是重复代码的一个例子。
我想创建一个函数" getEverythingFromRequest()"
我可以在Store和Update方法中使用它。类似的东西:
public function store (Request $request) {
getEverythingFromRequest();
dd($names[3];
}
public function store (Request $request) {
getEverythingFromRequest();
dd($hotels[2];
}
我该怎么办?在全球范围内,如何避免在Controller中重写相同的代码?
答案 0 :(得分:1)
有很多方法可以解决这个问题。一种方法是创建一个从您的请求中提取数组的repo。 (我更新了我的代码以使用注入)。
<强>控制器强>
public function store (GuestsRepository $repo, Request $request) {
dd($repo->names);
}
存储库
<?php
namespace App;
class GuestsRepository
{
public $names;
public $lastnames;
public $hotels;
public function __construct(){
$this->names = request()->get('names');
$this->lastnames = request()->get('lastnames');
$this->hotels = request()->get('hotel');
}
}