我正在尝试进行搜索,我已经确认已收到数据但未显示过滤器。
发送数据
<div class="panel-body">
{!! Form::open (['route' => 'report.index', 'method'=>'GET', 'class' => 'navbar-form navbar-left pull-right']) !!}
<div class="form-group">
<input type="text" name= "name" class="form-control" placeholder="Buscar por Servicio">
</div>
<button type="submit" class="btn btn-default">Buscar</button>
在控制器上:
class ControllerReport extends Controller
{
public function index(Request $request)
{
$servicio = mivista::name($request->get('name'));
return view('report.buscar_pagos', compact('servicio'));
}
}
,在模型中:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Scope;
use Illuminate\Database\Eloquent\Builder;
class mivista extends Model
{
protected $table = 'mivista';
public function scopeName($query,$name)
{
if ( ! is_null($name)) {
return $query->where('name', 'like', '%'.$name.'%');
}
}
}
我澄清说,在控制器中留下$service = mivista::all();
会显示所有数据,但我无法使用name参数进行搜索。
等待你的帮助,谢谢你提前
答案 0 :(得分:1)
您正在使用查询范围来修改查询,因此返回的值为Builder
对象。您可以在其上调用get
来获取数据。
试试这个
$servicio = mivista::name($request->get('name'))->get();