функция поиска не работает должным образом laravel 5.2

Я недавно изучал laravel 5.2 и имею базовое представление о том, как работает laravel, я сделал базовую функцию поиска и хочу искать записи из моей базы данных

Это моя функция поиска в пределах моего ProductenController

 public function search(request $request)
{
    //searching for products by name
    Producten::where('naam', 'LIKE', '%$request->naam%');
    return redirect(route('producten.index')->with($request));

}

в producten.индекс.blade i have my search

 {!! Form::open(['route' => 'producten.index', 'method' => 'GET', 'class' => 'search']) !!}

    {!! Form::text('naam')!!}

 {!! Form::close() !!}

Также Вот мои маршруты

Route::resource('producten', 'ProductenController', ['only' => ['index', 'store', 'delete', 'edit', 'update', 'create', 'search']]);

И это модель, с которой я хочу искать записи.

class Producten extends Model
{

// model producten holdes the attribues naam, inkoopprijs, verkoopprijs, 

protected $fillable = ['Id', 'naam',' inkoopprijs', 'verkoopprijs', 'fabrieken_Id'];
protected $table = 'Producten';

public $timestamps = false;



}

если есть что-то, что я забыл включить для u, чтобы быть в состоянии помочь мне просто дайте мне знать

2 ответа

  1. Ваша проблема, вероятно, лежит в этой линии:

    Producten::where('naam', 'LIKE', '%$request->naam%');

    Если вы хотите использовать встроенные переменные, используйте двойные кавычки »
    Я также добавил вокруг него фигурные скобки для удобства чтения.

    Producten::where('naam', 'LIKE', "%{$request->naam}%");
    

    Наконец, также убедитесь, что вы действительно получаете содержимое после использования операторов либо с помощью ->get () или — >>paginate()

     Producten::where('naam', 'LIKE', "%{$request->naam}%")->get();
    
  2. Ваша проблема, вероятно, лежит в этой линии:

    Producten::where('naam', 'LIKE', '%$request->naam%');
    

    Вы должны

    Producten::where('naam', 'LIKE', '%' . $request->naam . '%');