是否有比Model :: whereName('name')-> first()更好的方法来获取经常访问的模型?

时间:2019-09-26 18:03:31

标签: php laravel

很抱歉,这个问题没有更具体,但是我不确定我要做什么。我的grant()模型上有一个User函数,该函数启动资金从源帐户到用户帐户的转移。函数的参数之一是TransactionType。我希望能够拨打的电话是这样的:

$user->grant(100000000, TransactionType::LotteryWin)

不打电话

$user->grant(100000000, TransactionType:whereName('lottery_win')->first())

什么是最好的方法?我也许可以用scopes来实现,但是我想知道是否有更好的方法。

1 个答案:

答案 0 :(得分:1)

可以使用示波器进行操作。从作用域返回数据库结果甚至完全可以。在TransactionType中设置范围:

public function scopeLotteryWin($query)
{
    // Do what you need here
    return $query->whereName('lottery_win')->first();
}

然后您可以通过以下方式获得该结果:

TransactionType::lotteryWin();