1

您好我正在尝试使用 livewire 创建搜索查询。我想得到这样的特定查询: http://127.0.0.1:8000/users?page=1&name=abc

我该如何处理我的查询?现在我的控制器和刀片视图如下所示:

    public $page, $currentPage,$name;

    public function submit(Request $request)
    {
        $input = $request->all();
        dd($input);
      
    }
    
    public function mount(Request $request)
    {
        $value = session()->get('token');
        $page = $request->input('page');

        $client =new \GuzzleHttp\Client([
            'http_errors' => false,
            ]);
            
        $this->response = $client->get(env('API_URL').'users?', [
            'query' => [
                'page'=>$page,
                'name'=>$this->name,
            ],
             'headers' => [
                 'Authorization' => 'Bearer '.$value ,
                 'Accept' => 'application/json',
                ],
                ]);
                
        $this->res = json_decode($this->response->getBody(), true);
    }
4

1 回答 1

1

我假设您有一个刀片,其输入类似于<input type="text" wire:model="name"/>按名称搜索。

在您的挂载中,您可能希望从请求中传递数据,如下所示:

public function mount(Request $request)
{
   ...
    $this->name = request()->query('name');
   ...
}

并删除安装的责任并添加到如下功能:

private search($name){            
    $this->response = $client->get(env('API_URL').'users?', [
        'query' => [
            'page'=> $page,
            'name'=> $name,
        ],
        'headers' => [
            'Authorization' => 'Bearer '. $value ,
            'Accept' => 'application/json',
        ],
    ]);
                
    $this->res = json_decode($this->response->getBody(), true);
}

然后你添加一个函数来听取你的输入的变化:

public function updatedName($name){
    $this->search($name);
}

页面查询我不确定您是从 API 还是从查询字符串中获取它们的。如果您使用模型,我建议您查看特征 WithPagination。如果您使用 API 分页,则必须在前面手动应用页面的更改。

于 2020-07-16T19:27:36.837 回答