Eloquent/raw 쿼리가 쿼리가 실행되기 전에 함수를 실행하는 방법이 있습니까? 함수가 이전에 실행되어야하는 경우 매개 변수를 전달하는 기능을 확장 할 수 있으면 좋을 것입니다. 함수의 결과 (true/false)에 따라 쿼리가 실행되지 않아야합니다.Laravel - 쿼리가 실행되기 전에 함수 실행
"DB::listen
"의 보안 주체를 사용하는 것이 좋겠지 만이 기능 내에서 쿼리를 중지하거나 실행할 수 있는지 확실하지 않습니다.
이 이유는웨어 하우스 (db)에 결과를 영구 저장하고 항상 거대한 데이터베이스를 쿼리하지 않기 위해 약간의 데이터웨어 하우스를 직접 구축하고 싶기 때문입니다.
내가 사용하고자하는 방법은 쿼리의 해시를 생성하고 해시가웨어 하우스에 있는지 확인하는 것입니다. 값이 있으면 값이 리턴됩니다. 그렇지 않으면 쿼리가 실행되고 해시와 함께 출력이웨어 하우스에 저장됩니다.
아이디어가 있으십니까?
///// EDIT ///// 계산 된 값을 업데이트해야하는 경우 쿼리에 액세스하고 값을 업데이트하고 싶습니다. 예 : 12 월의 자동차 수 : 12 월에있을 때마다 계속해서 가치를 업데이트해야합니다. 그래서 나는 실행 된 쿼리를 db에 저장하고 그것을 검색하고 실행 한 다음 값을 업데이트합니다.
//// 편집 2 /////
Github에서 : 내가 달성하고자하는 것은 Laravels 쿼리/웅변 논리에 끼어에서 데이터웨어 하우스 논리를 사용하는 것입니다 https://github.com/khwerhahn/datawarehouselibrary/blob/master/DataWareHouseLib.php
배경.
이 같은아마 뭔가 :
$invalid_until = '2014-12-31 23:59:59'; // date until query needs to be updated every ten minutes
$cars = Cars::where('sales_month', '=', 12)->dw($invalid_until)->get();
DW ($의 date_parameter는) 내가 Laravel 백그라운드에서 데이터웨어 하우스 로직을 실행하고 DB에있는 경우 다음 쿼리를 다시 실행하지 싶습니다 추가 된 경우 .
을 그래서 기본적으로 당신이 캐싱 시스템을 원한다. 그건 이미 laravel에 있습니다. 다른 패키지 외에도 찾을 수 있습니다. –
예 캐싱 시스템을 원하지만 10 분이 아닌 데이터베이스에서 결과를 쿼리 할 수있는 시스템 – Tino
'rememberForever()'사용 캐시가 끝나지 않게하려면 왜 캐시 제한이 10 분이라고 생각하는지 모르겠다. –