laravel livewire 数据未在模态中显示
laravel livewire data not show in modal
我可以将数据传递给组件,但在 Alpine js 的模态中,数据为空。
这是class:
public $code, $products;
public function getData($id)
{
$product = Product::find($id);
$this->code = $product->code;
}
public function render()
{
$this->products = Product::latest()->get();
return view('livewire.cabin');
}
这是组件:
<div x-data="{open: false}">
<section>
if I use $code here the code value is shown !!!
<div>{{ $code }}</div>
<div class="slideCabin">
@foreach($products as $product)
<div>
<img
@click="open = true"
wire:click="getData({{ $product->id }})"
src="/images/allproducts/{{ $product->cover }}"
>
</div>
@endforeach
</div>
</section>
这是模态,通过点击标签由 Alpine js 打开:
<div id="backmodal" x-show="open">
but, the code value is null:
<p>{{ $code }}</p>
</div>
在模式中调用之前,您需要检查代码值是否已更改。
你得到了空值,因为它在赋值之前被调用了。
@if($code)
<p> {{ $code }} </p>
@endif
PHP 7.x 风格:
<p> {{ $code ?? "" }} </p>
要使其正常工作,您必须添加一些验证规则。
使用“public function rules()”选项
我可以将数据传递给组件,但在 Alpine js 的模态中,数据为空。
这是class:
public $code, $products;
public function getData($id)
{
$product = Product::find($id);
$this->code = $product->code;
}
public function render()
{
$this->products = Product::latest()->get();
return view('livewire.cabin');
}
这是组件:
<div x-data="{open: false}">
<section>
if I use $code here the code value is shown !!!
<div>{{ $code }}</div>
<div class="slideCabin">
@foreach($products as $product)
<div>
<img
@click="open = true"
wire:click="getData({{ $product->id }})"
src="/images/allproducts/{{ $product->cover }}"
>
</div>
@endforeach
</div>
</section>
这是模态,通过点击标签由 Alpine js 打开:
<div id="backmodal" x-show="open">
but, the code value is null:
<p>{{ $code }}</p>
</div>
在模式中调用之前,您需要检查代码值是否已更改。 你得到了空值,因为它在赋值之前被调用了。
@if($code)
<p> {{ $code }} </p>
@endif
PHP 7.x 风格:
<p> {{ $code ?? "" }} </p>
要使其正常工作,您必须添加一些验证规则。 使用“public function rules()”选项