有人可以帮助我吗,当我使用内联组件时,由于某种原因我无法获取路由参数,我尝试阅读文档但没有运气。
我的 web.php
Route::get('/preview/blog/{wow}', BlogPost::class);
我的 BlogPost 类组件
public $wow;
public function render($wow)
{
dd($wow);
return view('livewire.blog.blog-post', compact('wow'))->layout('layouts.blog');
}
我的内联组件
@livewire('blog.blog-post', ['wow' => $wow])
这也有效。
Route::current()->parameter('PARAMETER_NAME');
示例:
<?php
namespace App\Http\Livewire\Client\Auth;
use Livewire\Component;
class Verify extends Component
{
public string $token = '';
public function mount()
{
$token = \Route::current()->parameter('token');
$this->token = $token;
}
...
}
通常您需要访问控制器方法内的路由参数。由于我们不再使用控制器,Livewire 尝试通过其 mount 方法来模仿此行为。例如:
Route::get('/post/{id}', ShowPost::class);
class ShowPost extends Component
{
public $post;
public function mount($id)
{
$this->post = Post::find($id);
}
...
}
您可以通过请求传递来访问 livewire 中的路由参数。当您还想与可选参数一起使用时,此方法很有用
/preview/blog/{wow?}
Route::get('/preview/blog/{wow}', BlogPost::class);
public $wow;
public function mount($wow)
{
$this->wow = $wow;
}