且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Laravel路由和搜索控制器

更新时间:2023-11-17 12:40:16

首先注册一条路由以侦听您的搜索请求:

First register a route to listen your search request:

1.搜索路线:注册搜索路线.

//route search 
Route::get('/search',['uses' => 'SearchController@getSearch','as' => 'search']);

2.搜索视图:-现在,在视图中创建搜索表单:-

2. Search View:- Now create a search form in a view:-

<form  action="/search" method="get">
<input type="text"  name="q" placeholder="Search.."/>
<button type="submit">Search</button>
</form>

3.SearchController:

现在创建SearchController来处理您的搜索逻辑.SearchController:

Now create SearchController to handle your searching logic. SearchController :

    <?php

    class SearchController extends \BaseController {


        public function getSearch()
        {
            //get keywords input for search
            $keyword=  Input::get('q');

            //search that student in Database
             $students= Student::find($keyword);

            //return display search result to user by using a view
            return View::make('selfservice')->with('student', $students);
        }

    }

现在,您必须创建一个视图自助服务才能显示搜索结果.

Now you have to create one view selfservice to display your search result.

4.自助服务视图:

@foreach ($students as $key=> $student)
<div>
<a href="{{ URL::route('student.show', ['id' => $student->id]) }}">{{$student->name}}</a>
</div>              
@endforeach

在这里为每个学生成绩创建一个链接.该链接将是链接:-

Here for each student result, one link will be created. That link will be link:-

website.domain/{student}

5.为学生更新路线

Route::get('/{student}',['uses' => 'HomeController@student','as' => 'student.show']);


更新更新了答案以直接获取学生页面


UPDATE updated the answer to get student page directly

要将搜索从重定向到 website.domain \ {user} ,请按照以下步骤操作:-

To redirect from search to website.domain\{user} follow these steps:-

1.修改SearchController

<?php

class SearchController extends \BaseController {


    public function getSearch()
    {
        //get keywords input for search
        $keyword=  Input::get('q');

        //search that student in Database
         $student= Student::find($keyword);

        //redirect directly to student.show route with student detail
        return Redirect::route('student.show', array('student' => $student));
    }

}

2..现在在HomeController中为Route student.show 添加一个功能. Route :: get('/{student}',['uses'=>'HomeController @ student','as'=>'student.show']);

2. Now add a function for Route student.show in HomeController Route::get('/{student}',['uses' => 'HomeController@student','as' => 'student.show']);

在HomeController中

public function student($student)
{
    //here display student detail
}