Общие данные Laravel Inertia не обновляютсяPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Общие данные Laravel Inertia не обновляются

Сообщение Anonymous »

У меня есть приложение Laravel Breeze, работающее с использованием платформы InertiaJS. Я использую промежуточное программное обеспечение для передачи общих данных в макет.
Проблема в следующем:
Пользователь может изменить страну и если страна изменилась, у вас будет другой список доступных магазинов. Не все магазины постоянно присутствуют в макете. Если вы измените страну, вам будет предоставлена ​​часть всех магазинов, доступных для конкретной страны.
Когда пользователь меняет страну из раскрывающегося списка, я делаю запрос $inertia.post, и если пользователь аутентифицирован, я отправляю данные в наш CORE API для обновления настроек пользователя.
После того, как все настроено и сделано, я возвращаю \Redirect::back(), чтобы пользователь вернулся туда, где он изменил страну.
Вот если я проверьте промежуточное программное обеспечение, магазины действительно правильные, но интерфейс не получает новые данные, но если я обновлю после смены страны, появятся правильные магазины.

Код: Выделить всё

 //INERTIA VUE
countryChange() {
this.$inertia.post(this.route('switch_country'), {new_country_id: this.selected_country.id}, {})
}
Действие контроллера

Код: Выделить всё

 public function switchCountry(Request $request)
{
$country_id = $request->get('new_country_id');

if (SessionHandler::isAuth()) {
$auth_token = SessionHandler::auth_token();
$this->wrapper->changeCountry($country_id, $auth_token);
$new_user_data = $this->wrapper->getUserInfo($auth_token);
SessionHandler::sessionAuth($auth_token, $new_user_data['data']);
}

SessionHandler::updateCountry($country_id);
return Redirect::back();
}
Промежуточное ПО

Код: Выделить всё

 /**
* Define the props that are shared by default.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function share(Request $request)
{
$cachingService = resolve(CachingService::class);
$country_id = SessionHandler::getCurrentCountry();

$stores = $cachingService->stores->getStoresInCountry($country_id);

return array_merge(parent::share($request), [
'auth' => [
'user' => session()->has('user') ? session('user') : null,
],
'selected_country' => $cachingService->countries->getCountryById($country_id),
'store_categories' => $cachingService->store_categories->retrieveByCountryId($country_id),
'stores' => $stores,
'countries' => array_values(collect($cachingService->countries->get())->sortBy('name')->toArray()),
]);
}
TLDR: почему Inertia не обновляет все мои реквизиты, которые должны передаваться всем запросам, когда они изменяются, и требует обновления для правильного отображения данных?>

Подробнее здесь: https://stackoverflow.com/questions/664 ... t-updating
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»