Как не отображать некоторые значения в моем окне поиска? - PullRequest
0 голосов
/ 20 сентября 2019

Мне нужно знать, как сделать некоторые значения с display: none, основываясь на столбце из базы данных?

Итак, мне нужно отключить элементы с value="1" из столбца active, из таблицыnews, но я не знаю, как это сделать в моих скриптах.

Вот скрипт для поиска:

    else if(searchcategory == 'news')
            {
                get_values['search'] = search;
                get_values['news_category_url'] = $('#header_news_category_select').val();

                $.ajax(
                {
                    url: "{{ url('search-news-ajax') }}",
                    // data: {get_values:get_values},
                    type: 'GET',
                    data: {
                      '_token': $('input[name=_token]').val(),
                      'get_values': get_values,
                    },
                    success: function( response )
                    {

                        href = '{{ url("view-all-news") }}?category='+ get_values['news_category_url'] + '&search=' + search;


                        response +=
                            '<li class="col-md-12 col-xs-12">'+
                                '<a class="row" href="'+href+'" style="white-space:normal;padding-left:unset;padding-right:unset" id="redirect_url">'+
                                    '<div class="col-md-12" style="text-align:center;"><h5>Find more with '+
                                         search +
                                    '</h5></div>'+
                                '</a>'+
                            '</li>';
                            // console.log(html);

                             $('.search-item-list').html(response);
                             $(".search-item-list").show();
                             $(".removelist").show();
                    }

                });

            }

NewsController:

     public function searchNewsAjax(requ $request)
    {
        // return $request->all();
        $categoryID =  \App\Category::pluck('id');

        $news = News::with('category')->whereHas('user', function($query) {
                    $query->where('deleted_at', '=', null);
                })->whereIn('category_id',$categoryID);

        if ($user = Sentinel::check())
        {
            if(!$user->inRole('admins'))
            {
                $id = $user->id;
                $news = $news->Where(function($query1) use($id){
                        $query1->where('public','=', 1)->orWhereHas('user.contact', function ($query) use ($id) {
                            $query->where('user_id', '=', $id);
                            })->orWhere('user_id','=',$id);
                });
            }
        }
        else{
            $news = $news->where('public','=', 1);
        }

        $news = $news->where('subject', 'LIKE', '%'.$request['get_values']['search'].'%');

        if(!empty($request['get_values']['news_category_url']))
        {
            $category_id = \App\Category::where('category_url', '=' ,$request['get_values']['news_category_url'])->pluck('id');
            $news = $news->where('category_id', '=',$category_id);
        }

        $news = $news->orderBy('date', 'desc')->take(5)->get();

             $news_data = [];
            foreach ($news as $key => $value) {
                $news_data[$key] = $value;
                $news_data[$key]['subject_url'] = Slugify::slugify($value->subject);
            }
            // echo json_encode($news);
            $data['news'] = $news;
            return view('preview.news',$data);

    }

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

    <!-- Demo Pages -->
                <li class="mega-menu-fullwidth search-box-drop " style="margin-top:6px;">
                    <div class="search-box">
                        <div class="input-group animated ">
                            <input style="height: 33px !important;" class="form-control" placeholder="Search for Jobs, Courses, Career planning and more…" type="text" id="global_search_text" name="search">
                            <span class="input-group-btn">
                                <button class="btn-u submit" type="button">Go</button>
                            </span>
                        </div>
                    </div>

                    <ul class="dropdown-menu col-md-12 col-xs-12 search-item-list" >

                        <!-- About Pages -->
                        <li class="category search-category" data-val="jobs">
                            <a href="javascript:void(0);">Jobs<br>jobs</a>
                        </li>
                        <!-- End About Pages -->

                        <!-- Service Pages -->
                        <li class="category search-category" data-val="courses">
                            <a href="javascript:void(0);">Courses<br>jobs</a>
                        </li>
                        <!-- End Service Pages -->

                        <!-- Job Pages -->
                        <li class="events search-category" data-val="events">
                            <a href="javascript:void(0);">Events<br>jobs</a>
                        </li>
                        <!-- End Job Pages -->

                        <!-- Pricing Tables -->
                        <li class="news search-category" data-val="news">
                            <a href="javascript:void(0);">News<br>jobs</a>
                        </li>
                        <!-- End Pricing Tables -->

                        <!-- Login and Registration -->
                        <li class="opinions search-category" data-val="opinions">
                            <a href="javascript:void(0);">Opinions</a>
                        </li>
                        <!-- End Login and Registration -->



                    </ul>

Итак, вот мой пример, первая запись в базе данных имеет значение 1 в активном столбце, который отключен. Мне нужно не отображать эти записи при поиске, со значением 1 в базе данных при активном столбце, таблица новостей photo

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

Ответы [ 2 ]

2 голосов
/ 20 сентября 2019

Попробуйте это

$news = News::with('category')->whereHas('user', function($query) {
$query->where('deleted_at', '=', null);
})->whereIn('category_id',$categoryID)->where("value","!=",1);
1 голос
/ 20 сентября 2019

изменить свой код с помощью этого кода ниже:

public function searchNewsAjax(requ $request)
        {
            // return $request->all();
            $categoryID =  \App\Category::pluck('id');

            $news = News::with('category')->whereHas('user', function($query) {
                        $query->where('deleted_at', '=', null);
                    })->whereIn('category_id',$categoryID)
                    ->where('active','<>',1) // notice this line.. this is what you need.
                    ;

            if ($user = Sentinel::check())
            {
                if(!$user->inRole('admins'))
                {
                    $id = $user->id;
                    $news = $news->Where(function($query1) use($id){
                            $query1->where('public','=', 1)->orWhereHas('user.contact', function ($query) use ($id) {
                                $query->where('user_id', '=', $id);
                                })->orWhere('user_id','=',$id);
                    });
                }
            }
            else{
                $news = $news->where('public','=', 1);
            }

            $news = $news->where('subject', 'LIKE', '%'.$request['get_values']['search'].'%');

            if(!empty($request['get_values']['news_category_url']))
            {
                $category_id = \App\Category::where('category_url', '=' ,$request['get_values']['news_category_url'])->pluck('id');
                $news = $news->where('category_id', '=',$category_id);
            }

            $news = $news->orderBy('date', 'desc')->take(5)->get();

                 $news_data = [];
                foreach ($news as $key => $value) {
                    $news_data[$key] = $value;
                    $news_data[$key]['subject_url'] = Slugify::slugify($value->subject);
                }
                // echo json_encode($news);
                $data['news'] = $news;
                return view('preview.news',$data);

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