Alexander Musikhin 8 сар өмнө
parent
commit
79a39bbbf2

+ 11 - 4
app/Http/Controllers/Controller.php

@@ -94,7 +94,7 @@ class Controller extends BaseController
      * @param Request $request
      * @return void
      */
-    protected function setSortAndOrderBy(Model $model, Request $request)
+    protected function setSortAndOrderBy(Model $model, Request $request): void
     {
         // ------- setup sort and order --------------------------------------------------------------------------------
         $this->data['sortBy'] = (!empty($request->sortBy))
@@ -116,7 +116,7 @@ class Controller extends BaseController
      * @param Request $request
      * @return void
      */
-    protected function acceptFilters(Builder $query, Request $request)
+    protected function acceptFilters(Builder $query, Request $request): void
     {
         // accept filters
         if(!empty($request->filters) && is_array($request->filters)) {
@@ -149,7 +149,7 @@ class Controller extends BaseController
      * @param Request $request
      * @return void
      */
-    protected function acceptSearch(Builder $query, Request $request)
+    protected function acceptSearch(Builder $query, Request $request): void
     {
         // accept search
         if(!empty($request->s)) {
@@ -157,7 +157,14 @@ class Controller extends BaseController
             $searchFields = $this->data['searchFields'];
             $query->where(function ($query) use ($searchFields, $s) {
                 foreach ($searchFields as $searchField) {
-                    $query->orWhere($searchField, 'LIKE', '%' . $s . '%');
+                    if(Str::contains($searchField, '-')) {
+                        list($relation, $column) = explode('-', $searchField);
+                        $query->orWhereHas($relation, function ($query) use ($s, $column) {
+                           $query->where($column, 'LIKE', "%{$s}%");
+                        });
+                    } else {
+                        $query->orWhere($searchField, 'LIKE', '%' . $s . '%');
+                    }
                 }
             });
         }

+ 1 - 0
app/Http/Controllers/OrderController.php

@@ -33,6 +33,7 @@ class OrderController extends Controller
             'order_status_id'           => 'Статус',
             'tg_group_name'             => 'Имя группы в ТГ',
             'tg_group_link'             => 'Ссылка на группу в ТГ',
+            'products-common_name'      => 'МАФы'
         ],
         'searchFields' => [
             'comment',

+ 3 - 1
app/Http/Controllers/ProductSKUController.php

@@ -41,6 +41,8 @@ class ProductSKUController extends Controller
             'rfid',
             'factory_number',
             'certificate_number',
+            'product-nomenclature_number',
+            'product-article',
         ],
     ];
     public function index(Request $request)
@@ -59,7 +61,7 @@ class ProductSKUController extends Controller
 
         $q->orderBy($this->data['sortBy'], $this->data['orderBy']);
 
-
+//        dump($q->toRawSql());
         $this->data['products_sku'] = $q->paginate()->withQueryString();
         return view('products_sku.index', $this->data);
     }

+ 10 - 1
resources/views/partials/table.blade.php

@@ -50,8 +50,17 @@
                         @if(str_contains($headerName, '-'))
                             @php
                                 list($rel, $field) = explode('-', $headerName);
+//                                var_dump($string->$rel);die();
                             @endphp
-                            {!! $string->$rel->$field !!}
+                            @if(isset($string->$rel->$field))
+                                {!! $string->$rel->$field !!}
+                            @else
+                                <ul class="small">
+                                    @foreach($string->$rel as $item)
+                                        <li>{!! $item->$field !!}</li>
+                                    @endforeach
+                                </ul>
+                            @endif
                         @elseif(str_ends_with($headerName, '_id'))
                             @php
                                 $relation = \Illuminate\Support\Str::camel(str_replace('_id', '', $headerName));