php - 在 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'));
}
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
class Table extends Component{
public $tableQuery;
public function mount(){
$this->tableQuery = User::query();;
}
public function render(){
return view('livewire.table');
}
}
推荐阅读
- spring - Spring Security 在新页面上基于 JWT 令牌创建会话
- python - 是否有查找日期时间之间差异的功能?
- javascript - HtmlAgilityPack - 附加两个节点不起作用
- babeljs - 由于@babel/preset-typescript,Treeshaking webpack 4 不适用
- python - odoo v8 申请行
- amazon-web-services - 使用 --billing-mode=PAY_PER_REQUEST 创建 dynamodb 表失败
- angularjs - Angularjs sortable无法读取null的属性'ngModel'
- azure-devops - 如何在 Azure 的 VSTS 构建定义中使用 --prod 标志进行构建
- amcharts - 动态排除国家 amCharts
- django - Django & reportlab:在同一页面的 div 上显示生成的 pdf