获取路由参数lararvel livewire

问题描述 投票:0回答:3

有人可以帮助我吗,当我使用内联组件时,由于某种原因我无法获取路由参数,我尝试阅读文档但没有运气。

我的 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])
php laravel laravel-routing laravel-livewire
3个回答
3
投票

这也有效。

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;
    }

    ...

}

2
投票

通常您需要访问控制器方法内的路由参数。由于我们不再使用控制器,Livewire 尝试通过其 mount 方法来模仿此行为。例如:

Route::get('/post/{id}', ShowPost::class);

class ShowPost extends Component
{
    public $post;

    public function mount($id)
    {
        $this->post = Post::find($id);
    }

    ...
}

-1
投票

您可以通过请求传递来访问 livewire 中的路由参数。当您还想与可选参数一起使用时,此方法很有用

/preview/blog/{wow?}

Route::get('/preview/blog/{wow}', BlogPost::class);
public $wow;

public function mount($wow)
{
   $this->wow = $wow;

}
© www.soinside.com 2019 - 2024. All rights reserved.