无法在 Laravel 范围内获取我的 $params
Impossible to get my $params in Laravel scope
我是 Laravel 的新手,我尝试列出一个 table。在此列表中,我有一些过滤器。
我尝试使用范围,但它不起作用。
在我的控制器中我有:
class GrillesController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(request $request)
{
$query = DB::table('grilles')
->join('compets as CO','CO.id','=','gri_compet_id')
->join ('journees as JO', 'JO.id','=','gri_journee_id')
->select('com_nm_logo','jou_l_journee_c','grilles.*')
->where('com_c_st','A')
->orderbyRaw('gri_d_deb,gri_h_deb,com_n_ord_aff');
$params = $request->except('_token');
$grilles = Grilles::FilterListe($query,$params)->get();
在我的模型中:
public function scopeFilterListe($query,$params)
{
$value = $params['filter_compets'];
$query->where('gri_compet_id','=',$value);
return $query;
}
在模型的 scopeFilterListe
中,我想获取 URL 的所有变量来构建我的 where 子句。
我试了很多东西,但总是出现这个错误:
"Cannot use object of type Illuminate\Database\Query\Builder as
array"
它来自:$value = $params['filter_compets'];
如果我写 $value=1
,它会工作......(即使我有另一个问题,因为数据应该来自
->join('compets as CO','CO.id','=','gri_compet_id')
->join ('journees as JO', 'JO.id','=','gri_journee_id')
不显示..
我的示波器有什么问题?
非常感谢您的帮助。
我认为您需要动态范围。请查找文档 here.
附上您修改后的脚本。
public function scopeOfFilterListe($query,$value)
{
$query->where('gri_compet_id','=',$value);
return $query;
}
$query = DB::table('grilles')
->join('compets as CO','CO.id','=','gri_compet_id')
->join ('journees as JO', 'JO.id','=','gri_journee_id')
->select('com_nm_logo','jou_l_journee_c','grilles.*')
->where('com_c_st','A')
->orderbyRaw('gri_d_deb,gri_h_deb,com_n_ord_aff')
;
$params = $request->except('_token');
$grilles = Grilles::ofFilterListe($params['filter_compets'])->get();
我是 Laravel 的新手,我尝试列出一个 table。在此列表中,我有一些过滤器。 我尝试使用范围,但它不起作用。
在我的控制器中我有:
class GrillesController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(request $request)
{
$query = DB::table('grilles')
->join('compets as CO','CO.id','=','gri_compet_id')
->join ('journees as JO', 'JO.id','=','gri_journee_id')
->select('com_nm_logo','jou_l_journee_c','grilles.*')
->where('com_c_st','A')
->orderbyRaw('gri_d_deb,gri_h_deb,com_n_ord_aff');
$params = $request->except('_token');
$grilles = Grilles::FilterListe($query,$params)->get();
在我的模型中:
public function scopeFilterListe($query,$params)
{
$value = $params['filter_compets'];
$query->where('gri_compet_id','=',$value);
return $query;
}
在模型的 scopeFilterListe
中,我想获取 URL 的所有变量来构建我的 where 子句。
我试了很多东西,但总是出现这个错误:
"Cannot use object of type Illuminate\Database\Query\Builder as array"
它来自:$value = $params['filter_compets'];
如果我写 $value=1
,它会工作......(即使我有另一个问题,因为数据应该来自
->join('compets as CO','CO.id','=','gri_compet_id')
->join ('journees as JO', 'JO.id','=','gri_journee_id')
不显示..
我的示波器有什么问题?
非常感谢您的帮助。
我认为您需要动态范围。请查找文档 here.
附上您修改后的脚本。
public function scopeOfFilterListe($query,$value)
{
$query->where('gri_compet_id','=',$value);
return $query;
}
$query = DB::table('grilles')
->join('compets as CO','CO.id','=','gri_compet_id')
->join ('journees as JO', 'JO.id','=','gri_journee_id')
->select('com_nm_logo','jou_l_journee_c','grilles.*')
->where('com_c_st','A')
->orderbyRaw('gri_d_deb,gri_h_deb,com_n_ord_aff')
;
$params = $request->except('_token');
$grilles = Grilles::ofFilterListe($params['filter_compets'])->get();