在 Laravel Livewire 中保留 Eloquent Builder 实例
Persisting Eloquent Builder Instance in Laravel Livewire
我想在实例化时(在 mount
生命周期挂钩期间)保留 \Illuminate\Database\Eloquent\Builder
的一个实例,以便我可以将其用于查询。问题是我无法将其设置为 public 属性,因为它会抛出 Livewire\Exceptions\PublicPropertyTypeNotAllowedException
(如下所示)。我也无法将它保存在会话中,因为它是一个 PDO 实例,并且 PDO 实例无法序列化或反序列化。
伙计们有什么想法吗?
编辑:
控制器:
public function index() {
$tableQuery = User::query();
return view('table', compact('tableQuery'));
}
table.blade.php:
<livewire:table
:tableQuery=$tableQuery
>
App\Http\Livewire\Table:
class Table extends Component{
private $tableQuery;
public function mount($tableQuery){
$this->tableQuery = $tableQuery;
}
public function render(){
return view('livewire.table');
}
}
你可以在里面使用模型livewire
class Table extends Component{
public $tableQuery;
public function mount(){
$this->tableQuery = User::query();;
}
public function render(){
return view('livewire.table');
}
}
我想在实例化时(在 mount
生命周期挂钩期间)保留 \Illuminate\Database\Eloquent\Builder
的一个实例,以便我可以将其用于查询。问题是我无法将其设置为 public 属性,因为它会抛出 Livewire\Exceptions\PublicPropertyTypeNotAllowedException
(如下所示)。我也无法将它保存在会话中,因为它是一个 PDO 实例,并且 PDO 实例无法序列化或反序列化。
伙计们有什么想法吗?
编辑:
控制器:
public function index() {
$tableQuery = User::query();
return view('table', compact('tableQuery'));
}
table.blade.php:
<livewire:table
:tableQuery=$tableQuery
>
App\Http\Livewire\Table:
class Table extends Component{
private $tableQuery;
public function mount($tableQuery){
$this->tableQuery = $tableQuery;
}
public function render(){
return view('livewire.table');
}
}
你可以在里面使用模型livewire
class Table extends Component{
public $tableQuery;
public function mount(){
$this->tableQuery = User::query();;
}
public function render(){
return view('livewire.table');
}
}