各位大神有没有遇到这个问题,Livewire无法传递隐藏表单的值?

livewire 和 alpinejs 结合使用的一段代码。input 表单拿不到值

组件视图代码,一个普通的表单,livewire 和 alpinejs 结合:

<div x-data="{
tagItems: [1,2],  //这里的值只是做个示范,在实际场景中,这里的值是动态从其他地方获取的。
}">
         <form wire:submit.prevent="save">
              <input type="hidden" :value="tagItems" wire:model="tagItems">  //这个值是x-data里面的值
              <button class="button button-primary" type="submit">提交信息</button>
         </form>
</div>

组件方法:

class PostModal extends Component
{
    public $tagItems;
    public function save()
    {
        dd($this->tagItems);
    }
}

save() 里打印 $this->tagItems,值是 null
但是我如果将 input 的类型改为 text,手动输入值,就可以打印出来。是什么问题呢?

乌鸦嘴社区 wyz.xyz 来玩。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
running8
最佳答案

这个问题我好像也遇到过,特别是想用 js 改变隐藏表单的值的时候好像不生效。只好提交的时候 $wire.set ('property', value, true)

2年前 评论
讨论数量: 2
running8

这个问题我好像也遇到过,特别是想用 js 改变隐藏表单的值的时候好像不生效。只好提交的时候 $wire.set ('property', value, true)

2年前 评论

试下初始化?

class PostModal extends Component
{
    public $tagItems;

    public function mount()
    {
        $this->tagItems = [1,2];
    }
   ···
}
不再用 value 赋值
<input type="hidden" wire:model="tagItems"> 
2年前 评论