簡體   English   中英

我如何在Laravel中將相同的路由用於兩種不同的控制器功能方法

[英]how can i use same route for two different controller function methods in laravel

我如何在Laravel中將相同的路由用於兩種不同的控制器功能方法

第一控制人

public function index()
{
    $comproducts = Comproduct::paginate(6);

    $items = Item::orderBy('name')->get();

    return view('computer', compact(['comproducts', 'items']));

}

第二控制器

public function index()
{
    return view('search.index');
}

我想將這兩種不同的控制器功能用於一條路線。

這是我的路線名稱

Route::get('/computer', [

'uses' => 'ComputerProductsController@index',
'as' => 'computer.list'

]);

laravel需要某種方式來確定您想要哪種方法。 例如,您可以傳遞參數,該參數將標識要調用的方法。

public function index(Request $request)
{
   // if param exists, call function from another controller
   if($request->has('callAnotherMethod')){
       return app('App\Http\Controllers\yourControllerHere')->index();
   }
   $comproducts = Comproduct::paginate(6);

   $items = Item::orderBy('name')->get();

   return view('computer', compact(['comproducts', 'items']));

}

你不能 如果要將搜索功能添加到第一個控制器的索引頁面,則應確定要在控制器內部顯示哪個頁面。

可能的示例控制器:

public function index(Illuminate\Http\Request $request)
{
    // If the URL contains a 'search' parameter
    // (eg. /computer?search=intel)
    if ($request->has('search')) {
        // Do some searching here and 
        // show the search results page
        return view('search.index');
    }

    $comproducts = Comproduct::paginate(6);

    $items = Item::orderBy('name')->get();

    return view('computer', compact(['comproducts', 'items']));

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM