Laravel如何将帖子数据从一个post方法传递到同一个控制器中的另一个post方法?

时间:2016-02-10 05:44:54

标签: laravel post methods

假设我有一个搜索表单,使用ajax将搜索参数提交给post方法,在该方法中我已将结果返回到视图中。现在在该视图上我有一个选项供用户选择在excel中打印的记录范围,所以为此我需要再次提交搜索参数和打印设置到另一个post方法,我需要搜索该方法再次搜索参数,并限制搜索所选的打印范围。所以为此,我需要相同的代码块,但为了避免这种情况,可以从print post方法中调用搜索post方法吗?如果可能我该怎么办?或者其他任何方式?

1 个答案:

答案 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;
    }
}