php – Laravel范围 – 将2个参数传递给范围

前端之家收集整理的这篇文章主要介绍了php – Laravel范围 – 将2个参数传递给范围前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的表中有一个状态列,有3个状态(注册,转发,完成).

我在视图中有一个不同的链接来过滤结果:

<li>{{ link_to_route('psa.index','Eingetragen',array('f' => 'register'),$attributes = array('title' => 'Eingetragen!' )) }}</li>
<li>{{ link_to_route('psa.index','Wird erledigt',array('f' => 'forwarded'),$attributes = array('title' => 'Wird erledigt!' )) }}</li>
<li>{{ link_to_route('psa.index','Unerledigt',array('f' => 'forwarded','register'),$attributes = array('title' => 'Wird erledigt!' )) }}</li>

这是控制器代码段:

if(Input::get('f'))
        {
            $reports = PsaReports::filter(Input::get('f'))->with('automat','failure')->orderBy('incoming_day','desc')->orderBy('incoming_time','desc')->paginate(30);
        }

这里的范围:

public function scopeFilter($filter,$search)
    {
        return $filter->where('status',$search);
    }

通过上面的第三个链接,我想要调整状态寄存器的范围并进行转发.该链接传递两个参数,我如何将它们传递给范围?

或者它只能用第二个范围?

非常感谢

您可以在范围中添加第三个参数,然后在设置该参数时执行一些特殊操作.

你的范围

public function scopeFilter($filter,$search,$search2 = null)
{
    if ($search2 !== null) {
        return $filter->where(function($query) use ($search,search2) {
            $query->where('status',$search)->orWhere('status',$search2);
        });
    }

    return $filter->where('status',$search);
}

您的控制器代码

if(Input::get('f'))
{
    $reports = PsaReports::filter(Input::get('f'),Input::get('f2'))->with('automat','desc')->paginate(30);
}

你的链接

<li>{{ link_to_route('psa.index','f2' => 'register'),$attributes = array('title' => 'Wird erledigt!' )) }}</li>

猜你在找的Laravel相关文章