【问题标题】:Laravel Livewire 2.x is adding query string to URL how to disable itLaravel Livewire 2.x 正在向 URL 添加查询字符串如何禁用它
【发布时间】:2021-05-02 08:46:03
【问题描述】:

我想要一个干净的 URL 并且我的表格工作正常,直到我更新 Livewire 现在我的表正在添加查询字符串,例如 ?page=2 from page no2

所有代码都和以前一样,搜索后我在 Livewire 控制器中添加了这个 命名空间 App\Http\Livewire;

use Livewire\Component;
use Livewire\WithPagination;
class ContactsTable extends Component
{
    use WithPagination;
    protected $paginationTheme = 'bootstrap';
    protected $paginationQueryStringEnabled = false;

但它仍然在 URL 中显示查询字符串 如何禁用此功能?

谢谢

【问题讨论】:

  • 这能回答你的问题吗? Laravel LiveWire Pagination issue
  • 对不起,我不知道为什么受保护的 $paginationQueryStringEnabled = false;不工作
  • $paginationQueryStringEnabled 属性不是 Livewire 的一部分,您必须通过扩展 trait WithPagination 并在那里执行您自己的逻辑来自定义实现它。
  • 你好,谢谢你能帮我做这件事吗?

标签: laravel laravel-livewire


【解决方案1】:

为了防止默认的page 查询字符串被附加到浏览器,您可以执行以下操作:

WithPagination.php:

public function getQueryString()
{
    return array_merge(['page' => ['except' => 1]], $this->queryString);
}

如您所见,默认情况下它将page 添加到queryString 属性中。

要覆盖此行为,您可以在组件中添加以下方法:

use Livewire\Component;
use Livewire\WithPagination;

class ContactsTable extends Component
{
    use WithPagination;

    protected $paginationTheme = 'bootstrap';

    public function getQueryString()
    {
        return [];
    }
}

这里我们覆盖了WithPagination trait 中定义的getQueryString 方法,并将其设置为一个空数组。

【讨论】:

    猜你喜欢
    • 2016-02-17
    • 1970-01-01
    • 2016-04-16
    • 2019-12-01
    • 2021-07-19
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 2019-11-01
    相关资源
    最近更新 更多