Open renepardon opened 3 years ago
What version of livewire are you on? Livewire released an update which broke integration with this library (anything above 2.3.8). Test with 2.3.8 and check until the issue is resolved. https://github.com/livewire/livewire/issues/2445
I'm on ^2.0 right now which resolves to an installed version of 2.3.6 on my project. So this might not be the problem.
If you click a save button for example, an AJAX request is made by livewire. This request (POST URL) will be used by mcamara/laravel-localization for the redirect and not the current page URL I'm on.
This has been fixed and tagged in v2.3.12 of Livewire.
I don't know if I'm wrong, but I've solved the issue changing RouteServiceProvider.php
like so:
public function boot()
{
LaravelLocalization::setLocale();
}
So, I changed routes/web.php
like so:
Route::get('/', fn () => redirect('/'. LaravelLocalization::getCurrentLocale()));
Route::group(['prefix' => LaravelLocalization::getCurrentLocale(), 'middleware' => ['localize', 'localeSessionRedirect']], function() {
// Your routes...
});
Thanks @masterix21. It's working for login. For the logout, I create my custom LogoutResponse.
Like this :
<?php
namespace App\Http\Responses;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Response;
use Laravel\Fortify\Contracts\LogoutResponse as LogoutResponseContract;
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
class LogoutResponse implements LogoutResponseContract
{
/**
* Create an HTTP response that represents the object.
*
* @param \Illuminate\Http\Request $request
* @return \Symfony\Component\HttpFoundation\Response
*/
public function toResponse($request)
{
return $request->wantsJson()
? new JsonResponse('', 204)
: redirect(LaravelLocalization::localizeUrl('/'));
}
}
And inside FortifyServiceProvider.php :
public function boot()
{
$this->app->singleton(
\Laravel\Fortify\Contracts\LogoutResponse::class,
\App\Http\Responses\LogoutResponse::class
);
Hello, I'm preseting the same issue, I tried with @masterix21 solution but same result the url of menu is http://local.com/en/livewire/message/navigation-menu I've: "laravel/framework": "^9.19", "livewire/livewire": "^2.5", "laravel/jetstream": "^2.12",
any other idea how to solve it?
Regards
Describe the bug I use Laravel Jetstream with Livewire and integrated a language Selector in the top bar.
To Reproduce Steps to reproduce the behavior:
http://127.0.0.1:8000/en/user/profile
http://127.0.0.1:8000/de/livewire/message/navigation-menu
Expected behavior An AJAX call/request to the application should not updated the last visited route. If I stay on
http://127.0.0.1:8000/en/user/profile
and want to switch the language tode
, then I expect to land athttp://127.0.0.1:8000/de/user/profile
More info:
Additional context Have a nice day <3