Laravel 如何将帖子数据从一个帖子方法传递到同一 Controller 内的另一个帖子方法?

标签 laravel post methods

假设我有一个搜索表单,它使用 ajax 将搜索参数提交到 post 方法,在该方法上我已在 View 中返回结果。现在,在该 View 上,我可以选择让用户选择在 Excel 中打印的记录范围,因此为此,我需要再次将搜索参数以及打印设置提交到另一个发布方法,在该方法上我需要搜索再次搜索参数,并限制搜索选定的打印范围。因此,为此我需要相同的代码块,但为了避免这种情况,是否可以从 print post 方法中调用 search post 方法?如果可以的话我该怎么做?或者有其他方式吗?

最佳答案

首先,如果您使用 POST 将一些数据从客户端传递到服务器,则该数据在每种方法中都可用。您不必将其从一个传递到另一个。

就您而言,最好将业务逻辑移至存储库。您可以在 app 目录下创建一个名为 repositories 的新文件夹。然后创建一个新的存储库类,例如 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;
    }
}

您可以使用依赖注入(inject)在任何 Controller 中使用上述存储库,如下所示。这样,您就不需要在 Controller 中重复任何业务逻辑。

namespace App\Http\Controllers;

use App\Repositories\SearchRepository

class SearchController extends Controller {

    public function __construct(SearchRepository $search) {
        $this->search       = $search;
    }

    public function searchAction() {
        $result = $this->search->getDetails();

        // return to view or whatever
    }

    public function printAction() {
        $result = $this->search->getDetails();

        // print excel code or whatever
    }
}

关于Laravel 如何将帖子数据从一个帖子方法传递到同一 Controller 内的另一个帖子方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35307734/

相关文章:

javascript - Javascript 可以判断页面是 GET 还是 POST 的结果吗?

javascript - 如何将复杂的 HTML 表单作为 JSON 发布?

脚本底部的 Ruby 方法?

java - 不忽略一个值?

javascript - Eloquent 模型属性作为驼峰大小写 [Laravel 5.2] [Dingo API]

php - Laravel 4.2 根据请求频率生成新的 CSRF token ?

PHP - 在 foreach 循环之外保存到数据库

javascript - 单击 jquery/js 中的搜索按钮捕获搜索 url

Python - 作为类属性的函数成为绑定(bind)方法

php - Laravel Excel : CSV to Array