2013-11-03 117 views
2

爲了參數添加到一個GET方法,我知道我必須在路由添加{parameter}像下面Laravel 4寧靜控制器GET參數

Route::get('example/search/{id}', '[email protected]') 

但是,有沒有辦法做到這一點使用RESTful控制器如下所示?

routes.php文件

Route::controller('example', 'ExampleController') 

ExampleController.php

public function getSearch($id){ 
    //do something with $id 
} 

以上不工作,因爲routes.php不指望一個參數getSearch方法。我不知道是否有辦法解決這個問題,而不必添加個人Route::get路線。

回答

3
<?php 

// ExampleController.php 

class ExampleController extends BaseController { 
    public function getSearch($id = null){ 
     if ($id == null) { 
      return 'no id'; 
     } 
     return $id; 
    } 
} 

// routes.php 

Route::controller('example', 'ExampleController'); 

?> 

php artisan routes

enter image description here

enter image description here

+2

大。但是,與Laravel 4中的「索引」方法相同的情況呢?即使你把它定義爲'public function getIndex($ id = null)',請求URL'domain.tld/example/1'也會拋出'Controller method not found'錯誤。你必須爲此定義一條單獨的路由,如 'Route :: get('example/{id}',['uses'=>'ExampleController @ getIndex']) - > where('id','[0 -9] +');'。 **注**:此路線降落應發生在您的Route :: controller聲明工作之前。 – vitalikaz

+2

@vitalikaz索引有一個非常具體的用途。它應該是你的應用程序的索引頁面。因此,根據我的理解,它不應該按照設計參數,因此您所做的是覆蓋所需的默認行爲。 – zehelvion