Livewire 句柄查询

Livewire handle Query

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

如何处理我的查询?现在我的控制器和我的 blade 视图看起来像这样:

    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);
    }

我假设您有一个 blade 和 <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 分页,则必须在前面手动应用页面的更改。