我有一條路線:
Route::get('/', [FrontController::class, 'index']);
在這個控制器中,我獲得了經過身份驗證的用戶所在城市接下來 5 天的天氣。用戶表有一個“城市”列,api 請求基于該城市。
if (auth()->user()) {
$cityName = auth()->user()->city;
$apiKey = config('services.api.key');
// get the weather based on the provided city
$weatherResponse= Http::get("...");
return view('front.index', [
'weatherRespons' => $weatherRespons->json(),
]);
} else {
return view('front.index');
}
在索引視圖中
@guest
<h1>login/register to show your city weather</h1>
@else
<h1>Weather in {{ $weatherResponse['city'] }}</h1>
<x-weather :weatherResponse="$weatherResponse" />
@endguest
該組件x-weather有一些樣式來顯示 5 天的天氣。
現在我想在這個視圖上輸入一個輸入,以允許用戶在一個按鈕中輸入一個城市的名稱,然后組件 x-weather 應該更新該搜索城市的天氣。但是,頁面不應重繪 ,因為如果頁面重繪 ,它將顯示基于已驗證用戶所在城市的天氣。
你知道如何在架構方面正確地解決這個問題嗎?謝謝!
uj5u.com熱心網友回復:
根據我對問題的理解,你的問題如下:
在頁面加載時顯示登錄用戶的天氣
然后一旦他們輸入了所需的位置,系統就會顯示該位置而不重繪 頁面。
不確定此解決方案是否適合您,但我提出了一些想法,希望它們對您有用。
控制器:
對于登錄用戶,控制器將用戶位置傳遞給查看。
創建另一個用于簡單呼叫天氣 api 的函式,供您輸入。
看法:
登錄用戶 auto 的輸入顯示當前位置天氣,它在檔案準備好時呼叫控制器 api 函式。(或者,如果需要,您可以使用 javascipt 隱藏它)
Ajax,當用戶輸入所需的位置時,然后使用 ajax 將位置傳遞給呼叫 api 函式的控制器。當回傳值成功時,您可以清除原始內容,然后在頁面中添加您想要的任何內容,而無需重繪 它。
目前不討論編碼細節,但我相信你明白了。
看看ajax
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/336395.html
下一篇:我希望專案屬于它們相關的類別
