Laravel搜索结果

时间:2014-03-28 20:54:15

标签: php search laravel-4

我有以下问题?当您在我们的平台上搜索foo时,您会得到一个带有空白页面的搜索结果。如果用户在搜索查询中键入不在我们平台上的搜索结果,我会想要一个搜索结果,并且有一个很小的响应,例如"抱歉,我们的平台上没有foo"。

在我们的控制器下的searchcontroller.php中,我有以下内容

<?php

class SearchController extends BaseController
{
public function getIndex()
{
    $search = Request::get('q');
    if (empty($search)) {
        return Redirect::to('gallery');
    }
    $extends = explode(' ', $search);


    $images = Images::where('title', 'LIKE', '%' . $search . '%')
        ->orWhere('tags', 'LIKE', '%' . $search . '%')->orWhere('category', '=', $search)
        ->where('deleted_at', '=', NULL)->where('approved','=',DB::raw(1))->orderBy('created_at', 'desc');

    foreach ($extends as $extend) {
        $images->orWhere('tags', 'LIKE', '%' . $extend . '%')
            ->orWhere('title', 'LIKE', '%' . $search . '%')
            ->orWhere('image_description', 'LIKE', '%' . $search . '%');
    }
    $images = $images->paginate(30);

    return View::make('gallery/index')
        ->with('images', $images)
        ->with('title', t('Searching for').' "' . ucfirst($search) . '"');

}

}

1 个答案:

答案 0 :(得分:0)

在你看来,你会做这样的事情:

@if ($images->isEmpty())
    Sorry but we found no search results.
@else
    @foreach ($images as $image)
        <img src="{{ $image }}">
    @endforeach
@endif

那是更多的伪代码。基本上只检查Paginator实例是否有任何项目,如果没有,则显示“无搜索结果”消息。