Laravel Livewire 组件无法读取简单的 html 参数
Laravel Livewire Component not reading simple html parameters
刚开始使用 Laravel Livewire,我在将参数传递给 Livewire 组件时遇到问题。
Home.blade.php
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Laravel</title>
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
@livewireStyles
</head>
<body class="antialiased p-10">
<livewire:forms.input type="text" name="Test" />
@livewireScripts
</body>
</html>
组件
<div class="FormsInput">
@isset($label)
<label for="{{ $name }}">{{ $label }}</label>
@endisset
<div class="">
<input wire:model="{{ $name }}" type="{{ $type }}" name="{{ $name }}" id="{{ $name }}" placeholder="{{ $placeholder }}">
</div>
@isset($helper)
<div class="">
{{ $label }}
</div>
@endisset
<div class="">
{{ $error }}
</div>
</div>
Http/Livewire/Forms/Input
<?php
namespace App\Http\Livewire\Forms;
use Livewire\Component;
class Input extends Component
{
public function render()
{
return view('livewire.forms.input');
}
}
这是我得到的错误:
ErrorException
Undefined variable $name
要修复此错误,您必须做两件事:
- 将名称 属性 添加到您的组件,因为 Livewire 组件将数据存储和跟踪为组件 class.
上的 public 属性
class Input extends Component
{
public string $name;
...
}
- 在 wire:model 上使用 属性 名称,不带“$”
<input wire:model="name" ... />
您可以在此 Link.
找到有关 Livewire 文档的数据绑定
刚开始使用 Laravel Livewire,我在将参数传递给 Livewire 组件时遇到问题。
Home.blade.php
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Laravel</title>
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
@livewireStyles
</head>
<body class="antialiased p-10">
<livewire:forms.input type="text" name="Test" />
@livewireScripts
</body>
</html>
组件
<div class="FormsInput">
@isset($label)
<label for="{{ $name }}">{{ $label }}</label>
@endisset
<div class="">
<input wire:model="{{ $name }}" type="{{ $type }}" name="{{ $name }}" id="{{ $name }}" placeholder="{{ $placeholder }}">
</div>
@isset($helper)
<div class="">
{{ $label }}
</div>
@endisset
<div class="">
{{ $error }}
</div>
</div>
Http/Livewire/Forms/Input
<?php
namespace App\Http\Livewire\Forms;
use Livewire\Component;
class Input extends Component
{
public function render()
{
return view('livewire.forms.input');
}
}
这是我得到的错误:
ErrorException
Undefined variable $name
要修复此错误,您必须做两件事:
- 将名称 属性 添加到您的组件,因为 Livewire 组件将数据存储和跟踪为组件 class. 上的 public 属性
class Input extends Component
{
public string $name;
...
}
- 在 wire:model 上使用 属性 名称,不带“$”
<input wire:model="name" ... />
您可以在此 Link.
找到有关 Livewire 文档的数据绑定