Laravel Livewire:在更改选择输入时传递选项值

Laravel Livewire:在更改选择输入时传递选项值,laravel,laravel-8,laravel-livewire,Laravel,Laravel 8,Laravel Livewire,我正试图将输入的中的值传递到我的livewire控制器组件,并回显该值 Livewire刀片视图组件: {!! Form::select('goals',$goals_plucked,null,[ 'placeholder' => trans('classes.backend.forms.select_goals'), 'class' => 'custom-select', 'id' => 'goals', 'wire:change' =>

我正试图将
输入的
中的值传递到我的livewire控制器组件,并回显该值

Livewire刀片视图组件:

{!! Form::select('goals',$goals_plucked,null,[
    'placeholder' => trans('classes.backend.forms.select_goals'),
    'class' => 'custom-select',
    'id' => 'goals',
    'wire:change' => "goals(this.val)",
]) !!}
<select wire:model="goal" name="goal" class="form-control" required>
    <option value="">
        {!! trans('classes.backend.forms.select_goals') !!}
    </option>
    @foreach ($goals as $goal)
        <option value="{{ $goal->id }}">{{ $goal->goals }}</option>
    @endforeach
</select>
这是我的Livewire控制器组件中的null输出

Livewire控制器组件

public $goals;

public function goals($goals)
{
    dd($goals);
}
public $goals;
public $goal;

public function mount()
{
    $this->goals = Goals::all()->isActive();
}

public function updatedGoal($value)
{
    dd($value);
}
看了一些教程之后。我还尝试使用
'wire:change'=>“goals($event.target.value)”,
这给了我一个未定义变量$event的错误,显然是因为它没有在主控制器中定义。我不确定我在这里做错了什么

我要做的是:尝试创建一个流,就像选择国家,然后选择州,然后选择城市一样。通过livewire。在选择国家/地区之前,选择州和城市的输入将不可见

只需在前端指定wire:model=“variable_name”进行选择

在livewire控制器中,应该有一个同名的公共变量。它将在选择值更改时自动获取值

下面是同样的例子

 <select class="custom-select border-0 shadow-none" id="enquiry_for" wire:model="enquiry_for">
      <option value="1">Option 1</option>
      <option value="2">Option 2</option>
      <option value="3">Option 3</option>
 </select>

选择1
选择2
选择3

我尝试了下面的代码,效果很好。我只需要确保使用普通的html表单输入,并通过foreach循环动态添加选项。还使用
mount()
函数获取选择下拉列表的值和id

Livewire刀片视图组件:

{!! Form::select('goals',$goals_plucked,null,[
    'placeholder' => trans('classes.backend.forms.select_goals'),
    'class' => 'custom-select',
    'id' => 'goals',
    'wire:change' => "goals(this.val)",
]) !!}
<select wire:model="goal" name="goal" class="form-control" required>
    <option value="">
        {!! trans('classes.backend.forms.select_goals') !!}
    </option>
    @foreach ($goals as $goal)
        <option value="{{ $goal->id }}">{{ $goal->goals }}</option>
    @endforeach
</select>

我尝试了
'wire:model'=>“goals”,
&
'wire:model'=>$goals,
但是什么也没有发生,我也尝试了放置
'wire:model'=>“$goals”,
这给了我一个错误
在组件上找不到属性[$]
是livewire视图中的选择吗?是的,选择在livewire视图中的“wire:model'=>“goals”。如果您收到一个带有$的错误,则表示绑定正在工作。因此,您需要使用正确的语法进行编写attr@HardikSisodia你是在用单引号写wire:model吗。如果是,请将其移除。