【问题标题】:Livewire pass id for update用于更新的 Livewire 通行证 ID
【发布时间】:2021-01-22 06:25:50
【问题描述】:

如何传递列表中的 id 并更新数据库中的项目?

代码

<button class="acceptOrder btn btn-sm btn-success" wire:click="$emit('orderAccepted', {{$order->id}})">Accept order</button>

protected $listeners = ['acceptOrder'];

public function acceptOrder(Order $order)
{
  $order->update(['accepted' => true]);
}

错误

未捕获的 SyntaxError:无效或意外令牌

【问题讨论】:

  • 为什么你使用 $emit 可以直接在点击右键时调用函数?
  • @KamleshPaul Idk 我只是关注文档

标签: laravel laravel-livewire


【解决方案1】:

可以直接调用wire:click()中的函数

试试这个

<button class="acceptOrder btn btn-sm btn-success" wire:click="orderAccepted('{{ $order->id }}')">Accept order</button>

然后在组件中

public function orderAccepted(Order $order)
{
  $order->update(['accepted' => true]);
}

参考链接https://laravel-livewire.com/docs/2.x/actions

【讨论】:

  • VM48446:6 Uncaught SyntaxError: Invalid or unexpected token
  • 搜索分页
  • 同样的错误,但是我找到了解决该错误的方法,wire:click="orderAccepted('{{ $order-&gt;id }}')" 但它返回了Unable to call component method. Public method [orderAccepted] not found on component: [orders]
  • 修复了函数名应该是orderAccepted
  • $emit 如果需要将组件上的数据传输到另一个组件,我们会使用
猜你喜欢
  • 2023-01-30
  • 2020-12-22
  • 2021-08-19
  • 2021-12-17
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 2022-08-17
  • 1970-01-01
相关资源
最近更新 更多