php - Laravel 包开发中的会话已过期
问题描述
描述 我在将插入 laravel 项目的 laravel 包中使用 livewire。我成功地将 Livewire 集成到我的包中。我正在获取的错误是当我单击绑定到组件方法的按钮时,由于不活动,此页面已过期。我在我的基本文件中添加了 csrf 令牌,例如
<meta name="csrf-token" content="{{ csrf_token() }}" />
重现的具体步骤
- 在 laravel 项目中创建一个包。只渲染一个组件
- From Package Route(按照livewire的正常实现)。
- 从包路由文件渲染
Route::get('/acc/test'VoucherComponent::class);
- 从 livewire php 组件渲染模板时,请确保在视图名称之前添加 packagename,如下所示。
public function render(){
return view('acc::livewire.voucher-component')->layout('acc::layouts.app');
}
精简的、可复制粘贴的代码片段
"php": "^7.3|^8.0",
"illuminate/support": "^8.15",
"livewire/livewire": "^2.3",
"fruitcake/laravel-cors": "^2.0"
浏览器:[Chrome,]
包路由文件
<?php
use Enam\Acc\Http\Livewire\AccHeadComponent;
use Enam\Acc\Http\Livewire\VoucherComponent;
use Illuminate\Support\Facades\Route;
use Enam\Acc\Http\Controllers\HomeController;
Route::get('/acc', function () {
return view('acc::app');
});
Route::get('/acc/test', VoucherComponent::class);
解决方案
尝试将web
中间件应用于路由
use Enam\Acc\Http\Livewire\AccHeadComponent;
use Enam\Acc\Http\Livewire\VoucherComponent;
use Illuminate\Support\Facades\Route;
use Enam\Acc\Http\Controllers\HomeController;
Route::middleware(['web'])
->group(function() {
Route::get('/acc', function () { return view('acc::app'); });
Route::get('/acc/voucher-entry', 'Enam\Acc\Http\Controllers\HomeController@index');
Route::get('/acc/test', VoucherComponent::class);
});
推荐阅读
- python-3.x - 如何加速 cplex 解决方案池?
- c++ - 将多资源添加到 c++ 并将它们提取到临时文件夹以使用
- java - 为什么链接列表合并功能在 Java 中不起作用?
- vb.net - 如何从另一个类中的另一个函数访问新的实例化类方法?
- react-native - 在按钮单击时重新渲染本机视图
- angular - 过滤器和列表排序的问题Angular
- php - Wordpress 操作计划程序未运行
- rest - 在 Dynatrace 中分析性能
- flutter - 如何从我给定了一些值的类构造函数中访问数据。到另一个变量
- django - Django View 导致 Psycopg2 光标存在/不存在错误