【问题标题】:How can I pass a hidden form input in Laravel Livewire?如何在 Laravel Livewire 中传递隐藏的表单输入?
【发布时间】:2021-01-05 02:19:21
【问题描述】:

最近我一直在尝试实现 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 的值

【问题讨论】:

  • 您可能不需要隐藏输入,您可能只需在组件上拥有一个属性,并通过用户操作来维护它。然后不要设置隐藏输入的值,只需执行$set('reviewable_id', 'someValue')(自然取决于如何设置它,这里没有显示)。
  • 谢谢,这对我有用

标签: php jquery laravel web laravel-livewire


【解决方案1】:

你不能使用隐藏值或隐藏输入,但你可以使用这个解决方案:

在你的刀片中:

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

在您的组件中:

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

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

【讨论】:

    【解决方案2】:

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

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

    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-02-15
      • 2018-06-21
      • 1970-01-01
      • 2021-05-30
      • 2018-07-08
      • 2014-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多