我正在使用Laravel構建一個應用程序。我不得不在不同的頁面上運行查詢。所以同樣的查詢我不得不在幾個控制器中運行。但我認爲這不是一個好的編碼習慣。我可以在哪裏編寫一個單獨的程序並執行它,形成多個控制器,而不是再次寫入它? 我知道laravel雄辯和渴望加載也。如果我有一個大的查詢假設加入兩個三表我如何實現呢?如何減少查詢冗餘?
提前致謝。
我正在使用Laravel構建一個應用程序。我不得不在不同的頁面上運行查詢。所以同樣的查詢我不得不在幾個控制器中運行。但我認爲這不是一個好的編碼習慣。我可以在哪裏編寫一個單獨的程序並執行它,形成多個控制器,而不是再次寫入它? 我知道laravel雄辯和渴望加載也。如果我有一個大的查詢假設加入兩個三表我如何實現呢?如何減少查詢冗餘?
提前致謝。
您需要在文件夾助手(app/Helpers)中創建一個新的php文件並將新類放在那裏。我使用Main作爲例子。
namespace App\Helpers;
class Main
{
static public function getSomething($id) {
// ... DO something
return var;
}
}
接下來,您需要添加到config/app.php
'aliases' => [
...
'Main' => App\Helpers\Main::class
]
之後,你可以從你的項目
Main::getSomething($id);
的任何地方「使用應用程序\助手\主要用途; 「當然
這使您可以在所有控制器中使用此功能,而不是每次重複。
您可以使用與所有視圖共享數據。
您可以通過視圖Facade分享數據。有了這個視圖就可以訪問數據。無需查詢來自多個控制器的數據。
你AppServiceProvider類>引導方法
// write query
$query = User::all();
// Share data
View::share("user", $query);
不要忘記使用照亮的\ Support \外立面\查看在班上名列前茅
您還可以使用View Composer來實現類似的情景。
我不完全理解你的問題。你是在尋求一種避免爲同一個查詢重複_code_或避免多次運行相同查詢的方法? –
避免多次運行相同的查詢 – User57
查詢在做什麼? –