как отобразить результат поиска в laravel - PullRequest
0 голосов
/ 23 июня 2019

Я не могу показать результаты поиска, используя laravel.ниже приведен код для маршрута, контроллера и представлений:

route:

Route::resource('search', 'SearchController');

controller:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Order;
use Redirect;
use Auth;
use DB;

class SearchController extends Controller
{
    public function index(Request $request)
    {
        $order = Order::all();
        return view(search.index', compact(search));
    }

    public function search(Request $request)
    {
        $search = $request->search;

        $order = DB::table('order')
            ->where('custName','like',"%".$search."%");

        return view('search.index',compact('search'));
    }
}

view

<form action="search" method="GET">
    <input type="text" name="custName" class="form-control" <br>
                <button type="submit" class="btn btn-primary">SEARCH</button>
            </div>
        </div>
        <table class="table table-bordered" width="500">
            <tr>
                <td><font color="white">RESULT :</font></td>
            </tr>
            @foreach($order as $order)
            <tr>
                <td>{{ $order->custName }}</td>
                <td>{{ $order->orderStatus }}</td>
            </tr>
            @endforeach
        </table>

каталогlocation

c:/xampp/htdocs/web/resources/views/search/index.blade.php

show error

Undefined variable: order (View: c:\xampp\htdocs\web\resources\views\search\index.blade.php)

выше - мой код для поиска записи в базе данных.но результат всегда неопределенная переменная.

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

Ответы [ 3 ]

1 голос
/ 23 июня 2019

Есть некоторые проблемы с кодом, которым вы поделились, я пытаюсь рассказать те, которые я вижу.

  1. есть ошибка в Route :: resource, где вместо поиск вы закодировали поиск

  2. что касается метода поиска, он нигде не используется по указанному вами маршруту. Вы можете увидеть более подробную информацию о Route :: resource для методов и представлений в этот вопрос

  3. Теперь, учитывая, что вы загружаете index.blade.php из метода public function index , использование compact затруднено. На этой странице вы можете увидеть, насколько компактны и различны и как его использовать. Основная проблема заключается в том, что вы фактически не передаете заказ на рассмотрение.
  4. И последнее, но не менее важное. Рекомендуется называть элементы, имеющие совокупность значений, множественно. Например, здесь заявка должна измениться на заявки . Это предотвратит злоупотребление им в foreach. В вашем foreach имя итеративного массива и временная переменная, хранящая данные, должны отличаться, иначе они будут конфликтовать. Здесь у вас есть 2 переменные с именем order в одной и той же области видимости .
0 голосов
/ 25 июня 2019

например, у меня есть записи:

  1. а
  2. аа
  3. ааа
  4. B
  5. с
  6. д
  7. е

код показывать все записи № 1 до № 7. но теперь это решено, я исправил код в моем контроллере в секции index (), как показано ниже

 public function index()
 {
        return view('search.index', compact('order'));
 }

 public function search(Request $request)
 {
        $search = $request->search;
        $order = DB::table('order')->where('custName', 'like', "%".$search."%")->get();

        return view('search.result', compact('order'));
    }
0 голосов
/ 23 июня 2019

В вашем методе поиска контроллера присвойте результат поиска $ orders

$orders = DB::table('order')
            ->where('custName','like',"%".$search."%");

затем отправьте его на просмотр:

 return view('search.index',compact('orders'));

и в представлении сделайте это:

@foreach($orders as $order)
   <tr>
      <td>{{ $order->custName }}</td>
      <td>{{ $order->orderStatus }}</td>
   </tr>
 @endforeach

Это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...