Мое изображение с ошибкой, прикрепленное ниже введите здесь описание изображения
Я хочу реализовать множественный фильтр в моем файле просмотра проекта Laravel. Для вышеуказанного требования я помещаю список выбора в свой файл представления над областью таблицы, а затем помещаю несколько строк кода в свой контроллер. после этого я создаю для этого маршрут в своем файле web. php. наконец, я поместил скрипт в свой файл просмотра .
SeoKeywordController. php
<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Brian2694\Toastr\Facades\Toastr;
use Illuminate\Support\Facades\Log;
use App\Seokeyword;
use App\Project;
use App\Link;
use Validator;
use DB;
class SeoKeywordController extends Controller
{
public function index()
{
$seokey = Seokeyword::latest()->get();
return view('admin.seokeyword.index',compact('seokey'));
}
public function getKeyword(Request $request)
{
if(request()->ajax())
{
if($request->keyword)
{
$data = DB::table('seokeywords')
->select('seokeywords.id','seokeywords.keyword')
->where('seokeywords.keyword', $request->keyword);
}
else
{
$data = DB::table('seokeywords')
// ->join('category', 'category.category_id', '=', 'product.category')
->select('seokeywords.id', 'seokeywords.keyword');
}
return datatables()->of($data)->make(true);
}
$keyword = DB::table('seokeywords')
->select("*")
->get();
return view('admin.seokeyword.index', compact('keyword'));
}
}
index.blade. php {просмотр файла}
@section('content')
<div class="container-fluid">
<!-- ============================================================== -->
<!-- Start Page Content -->
<!-- ============================================================== -->
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="button-group">
<div class="row form-body">
<div class="col-sm-6">
<a type="button" class="btn waves-effect waves-light btn-primary" href="{{ route('admin.seokeyword.create') }}">Add New Keyword</a>
</div>
<div class="col-sm-6 form-group">
<form>
<select name="keyword" id="keyword" class="form-control">
@foreach($seokey as $keyword)
<option value="{{$keyword->id}}">{{$keyword->keyword}}</option>
@endforeach
</select>
</form>
</div>
</div>
</div>
<div class="table-responsive">
<table id="test" class="display nowrap table table-hover table-striped table-bordered" cellspacing="0" width="100%">
<thead>
<tr>
<th>ID</th>
<th>Project</th>
<th>Web Url</th>
<th>Seo Keyword</th>
<th>Action</th>
</tr>
</thead>
<tfoot>
<tr>
<th>ID</th>
<th>Project</th>
<th>Web Url</th>
<th>Seo Keyword</th>
<th>Action</th>
</tr>
</tfoot>
<tbody>
@foreach($seokey as $key=>$ke)
<tr>
<td>{{$key + 1}}</td>
<td>{{ $ke->project['project_name'] }}</td>
<td><a class="btn btn-primary btn-sm" href="{{ $ke->link['url'] }}" target="_blank" title="{{ $ke->link['url'] }}">Click Here</a></td>
<td><span title="{{$ke->keyword}}">{{ str_limit($ke->keyword,30) }}</span></td>
<td>
<a href="{{ route('admin.seokeyword.edit',$ke->id) }}" class="btn btn-info btn-m btn-circle">
<i class="ti-pencil"></i>
</a>
<button class="btn btn-danger btn-m btn-circle" type="button" onclick="deletePost({{ $ke->id }})">
<i class="ti-trash"></i>
</button>
<form id="delete-form-{{ $ke->id }}" action="{{ route('admin.seokeyword.destroy',$ke->id) }}" method="POST" style="display: none;">
{{ csrf_field() }}
{{ method_field('DELETE') }}
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('js')
<script>
$(document).ready(function(){
fetch_data();
function fetch_data(keyword = '')
{
$('#test').DataTable({
processing: true,
serverSide: true,
ajax: {
url:"{{ route('admin.seokeyword.index') }}",
data: {keyword:keyword},
type: 'GET'
},
columns:[
{
data: 'id',
name: 'id'
},
{
data: 'project_id',
name: 'project_id'
},
{
data: 'link_id',
name: 'link_id'
},
{
data: 'keyword',
name: 'keyword'
},
{
data: 'created_at',
name: 'created_at'
},
{
data: 'updated_at',
name: 'updated_at'
}
]
});
}
$('#keyword').change(function(){
var id = $('#keyword').val();
$('#test').DataTable().destroy();
fetch_data(id);
});
});
</script>
@endpush
если у кого-то есть какое-либо решение или какое-либо предложение, прокомментируйте. а также, если у вас есть лучший вариант реализовать фильтр в проекте laravel, предложите мне ссылку. Спасибо