謝謝你的建議,我已經創建了一個新的laravel命令,通過時間表功能定期運行。
在這里,在處理函式中,我每天都在執行這個查詢,我希望能夠在我的控制器中的get方法中檢索到變數主題。那么,什么是最好的方法呢?
public function handle()
{
$topics = DB::table("句子")
->選擇("話題")
->OrderByRaw("RAND()")
->區別()
->limit(5)
->get()。
echo($topics)。
return 0;
uj5u.com熱心網友回復:
$topics = DB::table("句子")
->選擇("話題")
->OrderByRaw("RAND()")
->區別()
->limit(5)
->pluck('id'); //pass only the array if ids。
if($topics)
return redirect()->route('route.name.to.controller',[' topics' => $topics] )。)
else
//做另一個動作。
uj5u.com熱心網友回復:
你在這里執行的命令和你的控制器之間沒有任何聯系。
沒有辦法在控制器中 "檢索"$topics變數,它們在你的應用程式中是完全不同的物體。
我的猜測是,你正試圖快取這些資料,這樣你就可以快速獲得它們,而不會出現任何性能問題。
如果是這種情況,那么你很幸運,因為解決方案非常簡單。
public function handle()
{
Cache::put(' topics', function() {
return DB::table("句子")
->選擇("topic")
->OrderByRaw("RAND()")
->區別()
->limit(5)
->得到()。
});
return 0;
}
然后,在你的應用程式的任何地方,你將能夠通過以下操作來檢索主題:
$topics = Cache::get( topics')。
這是個基本的例子,但它應該是有效的。然而,如果快取不存在,Cache::get('tics')將回傳null。
你可以通過以下方式解決這個問題:
檢索主題$topics = Cache:: rememberForever(' topics', function(){
return DB::table("句子")
->選擇("topic")
->OrderByRaw("RAND()")
->區別()
->limit(5)
->得到()。
});
//這樣,如果快取不存在,就會被創建。
//然后你的預定命令將每天更新它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/320603.html
標籤:
