假设我有一个搜索表单,使用ajax将搜索参数提交给post方法,在该方法中我已将结果返回到视图中。现在在该视图上我有一个选项供用户选择在excel中打印的记录范围,所以为此我需要再次提交搜索参数和打印设置到另一个post方法,我需要搜索该方法再次搜索参数,并限制搜索所选的打印范围。所以为此,我需要相同的代码块,但为了避免这种情况,可以从print post方法中调用搜索post方法吗?如果可能我该怎么办?或者其他任何方式?
答案 0 :(得分:2)
首先,如果您使用POST将一些数据从客户端传递到服务器,那么它将在每种方法中都可用。你不必将它从一个传递到另一个。
在您的情况下,最好将业务逻辑移动到存储库。您可以在getattr()
目录下创建名为repositories
的新文件夹。然后创建一个新的存储库类,如app
,如下所示
SearchRepository
您可以在任何使用依赖注入的控制器中使用上述存储库,如下所示。这样,您就不需要在控制器中重复任何业务逻辑。
namespace App\Repositories;
use Illuminate\Http\Request;
class SearchRepository {
public function __construct(Request $request) {
$this->request = $request;
}
/**
* Search details
*
* @return array
*/
public function getDetails() {
$q = $this->request->get('q');
$limit = $this->request->get('limit');
// Do the search operation with parameters recieved
return $result;
}
}