laravel - Livewire - 缺少路由所需的参数
问题描述
当 livewire 渲染视图时,我收到一条错误消息:
[Route: book.show] 缺少必需的参数
但是,如果我只是打印值,例如{{ $slug }}
,则视图会正确呈现。
看起来模型数据在渲染时不可用。我哪里错了?
我的观点片段
<a href="{{ route('book.show', $slug) }}">
Show book
</a>
我的组件
class BookForm extends Component
{
public $slug;
public $name;
public $summary;
protected $listeners = ['fillForm1' => 'editList'];
public function editList($id)
{
$book = Book::find($id);
$this->slug = $book->slug;
$this->name = $book->name;
$this->summary = $book->summary;
}
public function render()
{
return view('livewire.books.book-form');
}
}
我的路线
Route::get('/book/{slug}', 'BookController@show')->name('book.show');
我的 BookController / 显示方法
public function show($slug)
{
...
}
我正在使用“laravel/framework”:“^7.0”和“livewire/livewire”:“^2.5”
解决方案
我认为在渲染视图时,livewire 必须限制不发送模型数据。我使用了以下解决方法,如果您有改进的方法,请告诉我。
public function editList($id)
{
$book = Book::find($id);
$this->slug = route('book.show', $book->slug);
$this->name = $book->name;
$this->summary = $book->summary;
}
推荐阅读
- java - 如何上传 Android 库仅供私人使用?
- python - 为 Pandas 数据框结合 crosstab-pivot-groupby
- raku - 在 Perl 6 中,如何复制 Perl 的 List::Util::all 的行为?
- android - 如何使用 LocalBroadcastManager 为类编写单元测试?
- scikit-learn - Python:正确的命名法
- javascript - const React 的多个参数
- php - MySQL全文搜索和撇号
- python-2.7 - Python Appengine - 调用 Endpoints 工具时出现“ImportError:无法导入名称 OSRNG”
- java - 在父 pom 中定义的属性无法在子 pom 中解析/更新
- jquery - 在对投资组合项目应用 jQuery 过滤器后,单击时滚动到特定 div