付费课程, 订阅后即可观看
使用 Livewire 的事件机制保证组件间的数据实现联动变化
本期 Laravel Livewire 视频教程咱们看一看如何通过livewire的事件机制让组件的数据得到同步的刷新和及时的更新,它的这套事件机制充分借鉴了vuejs的实现方案,不过它更进一步,可以实现前后端的事件触发和监听
本期 Laravel Livewire 视频教程咱们看一看如何通过livewire的事件机制让组件的数据得到同步的刷新和及时的更新,它的这套事件机制充分借鉴了vuejs的实现方案,不过它更进一步,可以实现前后端的事件触发和监听
老哥 这种提交表单方式虽然无刷新了 但是多了一次http请求
有得就有失,永恒的真理,肯定没有十全十美,更何况它带来的效率提升以及其他方面节省的数据流量、资源消耗可以弥补这个东西
太柔顺了 没有VUE的经验 也可以进行前端的开发了
你终于来挖掘livewire这个宝藏世界了
刚入职国企信息处一个星期 处里想自主开发一些小的管理系统 这两天看下来laravel8+livewire 堪称完美,哈哈
还真的非常适合搞这个东西,找个后台的模板,直接对接,都不用写接口,全部livewire组件化沟通。
livewire 前段向订单内添加商品后为每个商品输入单独的数量和单价等属性,初始化的时候并不知道有多少个商品,当选择好商品想入输入数量和单价的时候发现提示需要前后端绑定的数据是没有定义的这个应该怎样解决呢
看迷糊了,没咋明白你的描述。
就是我要生成一个订单的时候,需要选择订单中包含那些商品,用一个按钮调出一个modal,选择商品,比如商品1,商品2...,显示在订单页面上,然后再在订单页面上给每个商品单独输入数量,单价等,在blade页面上foreach 循环selected_goods这个属性,然后在在每个单独的item里面输入amount和price这两个属性,页面这样写@foreach($selected_goods as $item)<input type="text" wire:model="item['amount']" />这样的话会报错说找不到item['amount']这个属性,如果这样写@foreach($selected_goods as $item)<input type="text" wire:model="selected_goods[{{$loop->index}}]['amount']" />这样的话livewire会报找不到selected_goods[0]['amount']这个属性
你这里是否会设计到注入的问题呀
等我收拾好孩子,我来看这个问题。肯定是存在注入问题的,这段时间一直设计大的层面,小的层面反而疏忽了。
Property [$selected_goods[0]['amounts']] not found on component: [order.neworder]报这样的错误
你应该犯了啥低级数据结构的错误,你可以把数据dump出来看一看是不是有想访问的数据项,然后决定通过数组,箭头还是嵌套组合的方式访问。
我现在写的是先在组件里用public做了一个selected_goods属性,直接定义这个属性有20个值,每个值都包含了amount等属性值为'',然后在选择完有哪些goods后将没有用到的删除,然后显示在组件页面上,问一下,这里由于第一维个数不确定,但是又需要定义好数据结构的有没有什么好办法呢
果然是,我应该这样写 @foreach($selected_goods as $item)\<input wire:model="selected_goods.{{$loop->index}}.amounts />@endforeach这样就关联上了
老大,你这个编辑器好像有问题呀,不能传图片,写html也有问题呀
是输出的时候忘写安全转码的代码了,本来也不让它支持传图片的,我下来把编辑器换一下,偷懒结果让自己陷入风险了。
还有就是由于livewire做前后端数据关联的时候必须要先在后台写一个public的属性,但是像我这样的需求,由于之前一个订单关联几个商品并不固定而且一个每个关联的商品都需要另外输入一些属性,这样的需求应该怎样事先在后台定义好数据结构呢
这种情况数据库中把需要补充的字段定义为使用json格式处理起来最方便,就不需要把属性写死了。或者就是定义关联表,把关联的属性单独保存在另一个属性表中,处理起来会稍微复杂点。