You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Volt路由中如何获取CategoryID?适配不同于Route::get的方式

解决Laravel Volt路由参数获取问题

在Volt组件中获取路由参数有两种简洁的实现方式:

方法一:自动注入路由参数到组件属性

在组件类中声明与路由参数同名的公共属性,Volt会自动将路由参数的值赋值给该属性,无需额外处理:

new #[Layout('layouts.app')] class extends Component {
    public string $name = '';
    public int $categoryId; // 声明与路由参数同名的公共属性

    public function createTopic(): void
    {
        $validated = $this->validate([
            'name' => ['required', 'string', 'min:6', 'max:255']
        ]);

        $topic = ForumTopicModel::create([
            'name' => $validated['name'],
            'category' => $this->categoryId, // 使用注入后的属性值
            'author' => Auth::id()
        ]);
    }
}

方法二:通过Livewire的route()方法直接获取

如果不想声明额外属性,可以在需要使用参数的位置,直接调用Livewire提供的route()方法获取指定参数:

new #[Layout('layouts.app')] class extends Component {
    public string $name = '';

    public function createTopic(): void
    {
        $validated = $this->validate([
            'name' => ['required', 'string', 'min:6', 'max:255']
        ]);

        $topic = ForumTopicModel::create([
            'name' => $validated['name'],
            'category' => $this->route('categoryId'), // 直接获取路由参数
            'author' => Auth::id()
        ]);
    }
}

注意事项

  • 如果路由参数是整数类型,建议在组件属性中声明int类型(如方法一中的public int $categoryId),确保类型安全。
  • 两种方法都无需手动解析请求或路由对象,Volt/Livewire已封装好参数传递逻辑。

内容的提问来源于stack exchange,提问作者ANDREW_FROST

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 10:31:03