首页 > 解决方案 > livewire 中的 route /$id 无法访问数据

问题描述

好的,我想创建像这样在另一个页面中显示数据的路线

http://localhost:8000/uraian/1

我的路线是这样的

Route::get('/uraian/{id}', [PengadaanController::class, 'uraian'])->name('uraian');

我可以访问它及其正常。现在它是我的 livewire 功能

<?php

namespace App\Http\Livewire;

use Livewire\WithPagination;

use App\Models\Kegi;

use App\Models\Uraian;

use Livewire\Component;

class UraianLw extends Component

{

    use WithPagination;
       public $uraianid ,$kegiatan_id ,$kode_rekening ,$uraian ,$anggaran ;




    public function render($id)

    {

        $kegiatan = Kegi::findOrFail($id);// here the problem

        $newid = $kegiatan->id ;

        

        return view('livewire.uraian-lw',[

            'uraian' => Uraian::where('id' ,$newid)->where('uraian', 'like', '%'.$this->search.'%')->paginate(10)

        ]);

    }
}

并且有错误

无法解析 App\Http\Livewire\Uraian 类中的依赖项 [Parameter #0 [ $id ]]

如何解决这个问题?

#更新我的刀片

<x-app-layout>
<x-slot name="header">
    <h2 class="font-semibold text-xl text-gray-800 leading-tight">
        {{ __('Dashboard') }} 
    </h2>
</x-slot>


     @livewire('uraian-lw')
           
    

</x-app-layout>

标签: laravellaravel-livewire

解决方案


你应该用这个

<x-app-layout>
<x-slot name="header">
    <h2 class="font-semibold text-xl text-gray-800 leading-tight">
        {{ __('Dashboard') }} 
    </h2>
</x-slot>


     @livewire('uraian-lw',['id' => Route::current()->parameter('id')]) <----------------- pass id from blade
           
    

</x-app-layout>

应用程序\Http\Livewire\UraianLw.php

<?php

use Livewire\Component;
use App\Models\Kegi;
use App\Models\Uraian;


class UraianLw extends Component

{

    use WithPagination;
    public $uraianid, $kegiatan_id, $kode_rekening, $uraian, $anggaran, $newid;


    public function mount($id)
    {
        $kegiatan = Kegi::findOrFail($id);
        $this->newid = $kegiatan->id;
    }

    public function render()

    {
        return view('livewire.uraian-lw', [

            'uraian' => Uraian::where('id', $this->newid)->where('uraian', 'like', '%' . $this->search . '%')->paginate(10)

        ]);
    }
}


推荐阅读