Как перенести функцию из маршрута в контроллер? - PullRequest
0 голосов
/ 21 октября 2019

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

Вот мой взгляд:

<form action="/search" method="POST" role="search">
    {{ csrf_field() }}
    <div class="input-group">
        <input type="text" class="form-control" name="q"
            placeholder="Search content"> <span class="input-group-btn">
            <button type="submit" class="btn btn-default">
                <span class="glyphicon glyphicon-search"></span>
            </button>
        </span>
    </div>
</form>

И вот мой маршрут сейчас:

Route::get('topic/{category?}/{page?}', 'CategoryController@category');
Route::any ( '/search', 'CategoryController@search');

Вот моя функция

public function search()
    {
      function () {
             $q = Input::get ( 'q' );
             $user = Opinion::where ( 'subject', 'LIKE', '%' . $q . '%' )->orWhere ( 'user_id', 'LIKE', '%' . $q . '%' )->get ();
              if (count ( $user ) > 0)
                  return view ( 'category-search' )->withDetails ( $user )->withQuery ( $q );
              else
                  return view ( 'category-search' )->withMessage ( 'No Details found. Try to search again !' );
        } ;
    }

Мой поиск по категориям:

@extends('layout.template')

@section('content')
<title>Search results</title>


<div class="container">
    @if(isset($details))
        <p> The Search results for your query <b> {{ $query }} </b> are :</p>
    <h2>Sample Content details</h2>
    <table class="table table-striped">
        <thead>
            <tr>
                <th>Name</th>
                <th>User id</th>
            </tr>
        </thead>
        <tbody>
            @foreach($details as $user)
            <tr>
                <td>{{$user->subject}}</td>
                <td>{{$user->user_id}}</td>
            </tr>
            @endforeach
        </tbody>
    </table>
    @endif
</div>

 @stop

Вот мой первый маршрут с функцией:

Route::any ( '/search', function () {
        $q = Input::get ( 'q' );
        $category  = Category::with('event','news','opinion')->where('category_url', '=' ,$category_data)->firstOrFail();
        $data['title'] = $category->category;
        $user = Opinion::where ( 'subject', 'LIKE', '%' . $q . '%' )->orWhere ( 'user_id', 'LIKE', '%' . $q . '%' )->get ();
        if (count ( $user ) > 0)
          return view ( 'category-search' )->withDetails ( $user )->withQuery ( $q );
        else
          return view ( 'category-search' )->withMessage ( 'No Details found. Try to search again !' );
} );

Ответы [ 2 ]

4 голосов
/ 21 октября 2019

удалить функцию () {

function search() {
    $q = Input::get ( 'q' );

        $category  = Category::with('event','news','opinion')->where('category_url', '=' ,$category_data)->firstOrFail();

        $data['title'] = $category->category;
    $user = Opinion::where ( 'subject', 'LIKE', '%' . $q . '%' )->orWhere ( 'user_id', 'LIKE', '%' . $q . '%' )->get ();
    if (count ( $user ) > 0)
        return view ( 'category-search' )->withDetails ( $user )->withQuery ( $q );
    else
        return view ( 'category-search' )->withMessage ( 'No Details found. Try to search again !' );
} );
}

1 голос
/ 21 октября 2019

Ваш метод поиска должен быть таким, как показано ниже:

public function search(){
$q = Input::get ( 'q' );
$user = Opinion::where ( 'subject', 'LIKE', '%' . $q . '%' )->orWhere ( 'user_id', 'LIKE', '%' . $q . '%' )->get ();

if (count ( $user ) > 0) {
    return view ( 'category-search' )->withDetails ( $user )->withQuery ( $q );
}else{
    return view ( 'category-search' )->withMessage ( 'No Details found. Try to search again !' );
}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...