簡體   English   中英

在 Laravel Livewire 中持久化 Eloquent Builder 實例

[英]Persisting Eloquent Builder Instance in Laravel Livewire

有一個\\Illuminate\\Database\\Eloquent\\Builder實例,我想在實例化時(在mount生命周期掛鈎期間)保留它,以便我可以將它用於查詢。 問題是我無法將其設置為公共屬性,因為它會拋出Livewire\\Exceptions\\PublicPropertyTypeNotAllowedException (如下)。 我也無法將它保存在會話中,因為它是一個 PDO 實例,並且 PDO 實例不能被序列化或反序列化。 在此處輸入圖片說明

有什么想法嗎?

編輯:

控制器:

public function index() {
    $tableQuery = User::query();

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

table.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');
    }
}

您可以在livewire使用 Model

class Table extends Component{
    public $tableQuery;
    
    public function mount(){
        $this->tableQuery =  User::query();;
     }
    
    public function render(){
        return view('livewire.table');
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM