Laravel scope - 将 2 个参数传递给 scope
Laravel scope - pass 2 parameters to scope
我的 table 中有一个状态栏,有 3 个状态(注册、转发、完成)。
我认为过滤结果的 link 不同:
<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);
}
对于上面的第三个 link,我想将状态寄存器 和 转发的范围。 link 传递了两个参数,如何将它们传递给范围?
或者只有第二个范围才有可能?
非常感谢
您可以在范围内添加第三个参数,然后在设置了该参数的情况下执行一些特殊操作。
你的范围
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', 'failure')->orderBy('incoming_day', 'desc')->orderBy('incoming_time', 'desc')->paginate(30);
}
你的link
<li>{{ link_to_route('psa.index', 'Unerledigt', array('f' => 'forwarded', 'f2' => 'register'), $attributes = array('title' => 'Wird erledigt!' )) }}</li>
我的 table 中有一个状态栏,有 3 个状态(注册、转发、完成)。
我认为过滤结果的 link 不同:
<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);
}
对于上面的第三个 link,我想将状态寄存器 和 转发的范围。 link 传递了两个参数,如何将它们传递给范围?
或者只有第二个范围才有可能?
非常感谢
您可以在范围内添加第三个参数,然后在设置了该参数的情况下执行一些特殊操作。
你的范围
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', 'failure')->orderBy('incoming_day', 'desc')->orderBy('incoming_time', 'desc')->paginate(30);
}
你的link
<li>{{ link_to_route('psa.index', 'Unerledigt', array('f' => 'forwarded', 'f2' => 'register'), $attributes = array('title' => 'Wird erledigt!' )) }}</li>