Laravel - Uncaught TypeError: Невозможно прочитать стиль свойства неопределенного значения. - PullRequest
0 голосов
/ 29 мая 2020

Мое изображение с ошибкой, прикрепленное ниже введите здесь описание изображения

Я хочу реализовать множественный фильтр в моем файле просмотра проекта 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, предложите мне ссылку. Спасибо

...