如何使用 Laravel 和 Livewire 显示产品的详细信息页面

How to show a detail page of a product with Laravel and Livewire

我根据教程创建了一个 Laravel Jetstream lifewire 页面。 我显示了一个记录列表,并添加了一个详细信息按钮。

<button wire:click="showdetails({{ $vehicle->id }})"class="inline-flex items-center px-2.5 py-1.5 border border-transparent text-xs font-medium rounded shadow-sm text-white bg-blue-500 hover:bg-blue-700">
   Details
</button>

当我点击这个按钮时,我想看到记录的详细页面(新视图,而不是列表视图)。

信息vehicle.php我添加了这个功能

public function showdetails($id)
{
    $this->vehicle = Vehicle::find($id);
    return view('livewire.vehicle.details');
}

我做错了,因为这个视图不会显示。 我该如何解决这个问题?

感谢帮助!

  1. 创建到您的 Livewire ShowVehicle 组件的路由:

Route::get('/vehicle/{id}', ShowVehicle::class);

  1. 重定向到该路由:

    public function showdetails($id)
    {
        return redirect()->to("/vehicle/$id");
    }
    
  2. 使用 ShowVehicle 组件显示项目详细信息:

    class ShowVehicle extends Component
    {
       public $vehicle;
    
       public function mount($id)
       {
          $this->vehicle = Vehicle::find($id);
       }
    
       public function render()
       {
          return view('livewire.vehicle.details', [
             'vehicle' => $this->vehicle,
          ]);
       }
    }