我正在搜索一种创建自定义DB查询方法的方法,类似于雄辩范围。
例如
class User extends Eloquent
{
public function getActiveUsers()
{
//...
//...
$data = DB::table('myTable')
->where('active', 1)
->myFun($var1, $var2) //<-- custom method
->limit(10)->get();
dd($data);
}
}
,在myFun()
中,我会有一些类似的东西
public function myFun()
{
if(condition 1)
{
$query->where('col', 12)
}
if(condition 2)
{
$query->where($va2, 'test')
}
}
最后,将子句添加到主查询中。
我找到了这个解决方案,但这是针对Laravel5。我正在寻找Laravel 4.2。
请注意:应用程序处于生产阶段,因此我不能使用雄辩的范围,因此我希望创建类似的东西。
根据您的要求,请遵循以下概念:
class User extends Eloquent
{
public $query = null;
public function getActiveUsers()
{
//...
//...
$this->query = DB::table('myTable');
$this->myFun($var1, $var2) //<-- custom method
$data = $this->query->limit(10)->get();
dd($data);
}
public function myFun()
{
if(condition 1)
{
$this->query->where('col', 12);
}
if(condition 2)
{
$this->query->where($va2, 'test');
}
$this->query->where('active', 1);
}
}