代码之家  ›  专栏  ›  技术社区  ›  Mohmed Blida

如何在livewire中从一个组件向另一个组件发射和侦听值?

  •  0
  • Mohmed Blida  · 技术社区  · 2 年前

    大家好,我是livewire的新手,我正在尝试发送 $this->wil 从…起 FormElements.php 组件到 form.php 组件,并将其渲染到balde文件上。

    这是我的 FormElements.php 密码

    class FormElements extends Component
    {
    
        public $deliveryFees = 0;
        public $wil = 'Blida';
        public $fees = [];
        
        public function deliveryFees()
        {
            $this->deliveryFees;
            //dd($this->deliveryFees);
        }
        public function render()
        {
            $destination = DB::table('delivery_fees')->select('*')->pluck('destination');
            return view('livewire.form-elements', compact('destination'));
        }
    
        public function updatedWil()
        {
            $this->fees = DeliveryFee::select('stopdesk', 'domicile','id')
                ->where('destination', $this->wil)
                ->get()->toJson();
            $fees = ($this->fees);
            return view('livewire.form-elements', ['json' => $fees]);
        }
    }
    

    $this->wil 是一个动态值,当从下面的代码中选择选项值时会发生变化:

    <select id="wilaya" wire:model="wil"
       class="w-full dropdown-toggle  items-center justify-between rounded-lg border border-jacarta-100
          bg-white py-3 px-3 dark:border-jacarta-600 dark:bg-jacarta-700 dark:text-jacarta-300"
            onchange="closeFunction()">
              @foreach ($destination as $items)
                 <option value="{{ $items }}">{{ $items }}</option>
              @endforeach
         <input type="hidden" name="wilaya" value="{{ $wil }}">
     </select>
    

    另一方面,我有 Form.php 组成部分

     public function render()
        {
            $wilayas = Wilaya::where('nom','Alger')->first();
    
            dd($wilayas->id);
    
            if (!empty($wilayas)) {
                
                $communes = Commune::where('wilaya_id',$wilayas->id)->get();
            }else{
                $communes = [];
            }
            return view('livewire.form',compact('wilayas' , 'communes'));
        }
    

    我想听听发送的值,并将其放在这行代码中 $wilayas = Wilaya::where('nom',$this->wil)->first(); 这样我就可以拿到 nom 基于的值 $this->wil .

    我希望我的问题很清楚。请随时告诉我实现我的想法的简单方法。

    提前谢谢。

    0 回复  |  直到 2 年前