我试图弄清楚如何在模型中运行原始查询。
让我们说我有一个模型FOO,这个模型有一个方法可以进行交叉表关节,对逻辑进行分组,并且对于Eloquent ORM来说是很重要的。
我想要的是能够从控制器调用此方法,如下所示:
Model::method()->get()
老实说,只要我可以将原始查询保留在模型中并从控制器中调用它,任何其他调用都可以。
我想避免的是让DB :: raw()和查询本身在控制器中。
答案 0 :(得分:2)
如果您向方法添加static
,则可以直接从模型Model::method()
调用它,否则您应该使用模型实例$modelInstance->method()
:
所以在你的模型中:
public static function method(){
// your query
return queryBuilder;
}
就是这样,在控制器中你可以按照自己的意愿去做:
Model::method()->get()
答案 1 :(得分:0)
有效的方法是使用laravel查询范围
var myTimer = {
minInterval: 19,
secInterval: 59,
min_: i want data of minInterval
sec_: i want data of secInterval
timerCountDownStart: function () {
if (myTimer.min_ <= -1) {
myTimer.min_ = myTimer.minInterval;
}
document.getElementById("count-timer").innerHTML = myTimer.min_ + " minute(s) et " + myTimer.sec_-- + " seconde(s) avant l\'expiration de votre réservation";
if (myTimer.sec_ <= -1) {
myTimer.min_--;
myTimer.sec_ = myTimer.secInterval;
myTimer.myStopFunction();
$('#title-reservation').text('Votre réservation a expirée');
$('#count-timer').fadeOut(1000);
sessionStorage.clear('nom_station');
}
},
myStopFunction: function () {
clearInterval();
sessionStorage.clear('nom_station');
$('#count-timer').fadeOut(1000)
}
};
并在控制器中
public static function scopeFoo($query)
{
return $query->whereStatus(...);
}