猿问

在 Laravel Livewire 中持久保存 Eloquent Builder 实例

有一个实例\Illuminate\Database\Eloquent\Builder我想在实例化时(在mount生命周期挂钩期间)保留下来,以便我可以使用它进行查询。问题是我无法将其设置为公共财产,因为它会抛出一个Livewire\Exceptions\PublicPropertyTypeNotAllowedException(如下所示)。我也无法将它保存在会话中,因为它是一个 PDO 实例,并且 PDO 实例无法序列化或反序列化。

大家有什么想法吗?


编辑:


控制器:


public function index() {

    $tableQuery = User::query();


    return view('table', compact('tableQuery'));

    }

表.blade.php:


<livewire:table

   :tableQuery=$tableQuery

>

应用\Http\Livewire\表:


class Table extends Component{

    private $tableQuery;

    

    public function mount($tableQuery){

        $this->tableQuery = $tableQuery;

    }

    

    public function render(){

        return view('livewire.table');

    }

}


不负相思意
浏览 93回答 1
1回答

烙印99

你可以在里面使用模型livewireclass Table extends Component{&nbsp; &nbsp; public $tableQuery;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; public function mount(){&nbsp; &nbsp; &nbsp; &nbsp; $this->tableQuery =&nbsp; User::query();;&nbsp; &nbsp; &nbsp;}&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; public function render(){&nbsp; &nbsp; &nbsp; &nbsp; return view('livewire.table');&nbsp; &nbsp; }}
随时随地看视频慕课网APP
我要回答