Laravel - Livewire,如何自定义全局消息URL?



使用如下示例中的自定义域并没有告诉Livewire请求在此示例中使用相同的子域subdomain1作为前缀:

Route::domain('subdomain1.'.env('APP_DOMAIN', 'localhost'))
->middleware(['web',.....])
->as('app.')
->group(base_path('routes/app.php'));

问题是,默认回调的Livewire取端点是/livewire/message/{message}不幸的是只使用根域,而不是基于它被调用的地方。在我的情况下,从subdomain1和你可以猜到这意味着会议包的不同存储。首先,这是一个不同的会话。

所以存储子域的会话与存储会话本身是不一样的。尽管如此,为了封装基于每个子域的Livewire使用,我还需要其他自定义,如果我有一个基于多租户的项目,并且我需要这样的隔离。

经过一番谷歌搜索,并基于Livewire论坛的解决方案:

我将它定制为适合子域使用

  • 步骤1,在routes/app.php中添加新路由:
use LivewireControllersHttpConnectionHandler;
// .....
// Notice that this root route has to be the same as the one in step2:
Route::get('/', [AppController::class, 'index'])->name('app.index');
// .....
Route::post('livewire/message/{name}', [HttpConnectionHandler::class, '__invoke']);
  • Step2,在@livewireScripts之后的Blade:
@livewireScripts
<script>
window.livewire_app_url = '{{route('app.index')}}';
</script>

如果你想知道Livewire的配置,没有必要改变它。就让它顺其自然吧;null:

'asset_url'  => null,

相关内容

  • 没有找到相关文章

最新更新