首页 > 解决方案 > Laravel Livewire 使用重定向将变量数据从一个组件传递到另一个组件

问题描述

我正在尝试使用两个 livewire 控制器进行更新过程。我想传递所选页面的 id 并将该数据传递给另一个 livewire 控制器。

我尝试使用:return redirect()->route('system-pages/update-system-page', ['pages_id' => $this->modelId]);将数据传递到 url$this->modelId是页面的 id。每当我选择一个页面时,当前的 URL 是http://127.0.0.1:8000/system-pages/update-system-page?pages_id=7.

我通过将 url 转换为字符串并选择最后一个字符来获取 id: $this->pageData = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

有没有更好的方法从另一个组件获取 id 并将该数据传递给另一个 livewire 组件?谢谢你。

标签: phplaravelredirectcontrollerlaravel-livewire

解决方案


而不是使用查询字符串,尝试将 id 放在路径中

所以会的http://127.0.0.1:8000/system-pages/update-system-page/7

为此,在您的路线中,只需添加一个变量: Route::get('system-pages/update-system-page/{pages_id}')

然后在你的 livewire 控制器中,使用 mount 方法获取 id

public function mount($pages_id){

}

重定向代码仍然与您的相同。

来源:https ://laravel-livewire.com/docs/2.x/rendering-components#route-params


推荐阅读