1

最近我一直在尝试实现 laravel 的 livewire 来提交表单并刷新页面,而无需实际使用基于当代 ajax 的流程。它适用于一切,除了我需要发送一些隐藏的输入值,我将在提交表单之前根据用户的操作进行更改。

<input type="text" class="w-100 ratings-hidden" value="" wire:model="rating_val">
<input class="" value=""  wire:model="reviewable_id"  type="hidden">
<textarea class="form-control w-100 animated" cols="50" id="new-review" wire:model="comment"  placeholder="Enter your review here..." rows="5"></textarea>

在这里,提交后很好地获取了评论,但我无法获得 rating_val 和 reviewable_id 的值

4

2 回答 2

1

从输入中删除 value="" 因为 livewire 会为您完成。

在您的组件设置属性中,您需要 ($rating_val, $reviewable_id) 并在您的 mount 方法中初始化这些属性的值。

class ComponentName extends Component
{
   public $rating_val;
   public $reviewable_id;



  public function mount() 
  {
     $this->rating_val = "value_for_input";
     $this->reviewable_id = "value_for_input";
  }
}

在您的刀片文件中,您只需要以下内容

<input type="hidden" wire:model="rating_val">
<input type="hidden" wire:model="reviewable_id">

https://laravel-livewire.com/docs/2.x/properties

于 2021-03-30T11:41:37.850 回答
0

您不能使用隐藏值或隐藏输入,但可以使用此解决方案:

在你的刀片中:

<form wire:submit.prevent="YourMethodName( {{ $param1 }} , {{ $param2 }})")>
    <button type="submit" >Sned</button>
</form>

在您的组件中:

public function YourMethodName($param1 , $param2)
    {
        dd([
            'param1'=> $param1 ,
            'param2' => $param2,
        ]);
    }

它应该可以工作,在我使用这个解决方案的项目中。

于 2021-10-14T21:14:44.793 回答