首页 > 解决方案 > 如何在 Livewire-Laravel 中将值/变量从一个函数传递到另一个函数

问题描述

我在做一个multiple dropdown,但是最后一次select并没有显示updatedSelectedYear中查询的信息,请问如何将$models、$master和%year的值传递给updatedSelectedYear函数?该查询适用于挂载功能,但不适用于 updatedSelectedYear。

<?php

namespace App\Http\Livewire;

use Livewire\Component;
use App\Models\Cotizaciones;
use App\Models\Vehiculo;
use App\Models\Stockokm;
use App\Models\Master;
use App\Models\Modelo;
use App\Models\Marca;
use App\Models\User;
use Livewire\WithPagination;
use App\Models\Linlpv;
use Illuminate\Support\Facades\DB;


class Cotizador extends Component
{

    public $marcas;
    public  $modelos;
    public  $masters;
    public  $years;
    public  $chassis;


    public $selectedMarca = '';
    public $selectedModelo = NULL;
    public $selectedMaster = NULL;
    public $selectedYear = NULL;
    public $selectedChasis = NULL;

    public function mount()
     {

         $this->marcas = Marca::where('es_para_cotizador', '=', 'S')->get();
         $this->modelos = collect();
         $this->masters = collect();
         $this->years = collect();
         $this->chassis = collect(); 
     }
    
    public function render()
    {
       
        
        return view('livewire.cotizador');
    }

    
    public function updatedSelectedMarca($marca)
    { 
       $this->modelos = Modelo::where('cod_marca', $marca )
      ->get();
        
    }

    public function updatedSelectedModelo($modelos)
     {
        
        $this->masters = Master::where('cod_modelo', $modelos)
        ->get();
    
         
     }
     public function updatedSelectedMaster($master)
     {
        
       $this->years =  Linlpv::distinct()
        ->get(['anio'],$master);

     }
    
    public function updatedSelectedYear($modelos, $masters,  $years)
     {

         $this->selectedModelo = $modelos;
         $this->selectedMaster = $masters;
         $this->selectedYear = $years;

        $this->chassis = Vehiculo::from('ct_vehiculos as v')
        ->join('sa_stockokm as s',function($join){
            $join->on('v.chassis','=','s.chassis')
            ->where('s.cod_estado','=', 'stock');
        })   
        
           ->where('v.cod_modelo',  $modelos)
           ->where('v.cod_master',  $masters)
           ->where('v.año_modelo',  $years)
           ->select("*")
           ->get();

           

     }
   

}

我在做一个multiple dropdown,但是最后一次select并没有显示updatedSelectedYear中查询的信息,请问如何将$models、$master和%year的值传递给updatedSelectedYear函数?该查询适用于挂载功能,但不适用于 updatedSelectedYear。

标签: phplaravelfunction

解决方案


推荐阅读