2014-02-16 88 views
1

我使用laravel我最近開始,我用下面的RESTful方法,請建議,如果這種做法是好的...建議在寧靜的laravel

作者控制器

class AuthorsController extends BaseController { 

    public $restful = true; 

    public function getIndex() 
    { 
     return View::make('authors.index')->with('title', 'Showing Authors')->with('authors', Author::all()); 
    } 

    public function newAuthor() 
    { 
     if(Request::isMethod('post')){ 
      $author = Author::create(array(
          'name' => Input::get('name'), 
          'bio' => Input::get('bio') 
          )); 
      if($author->id) return Redirect::route('authors')->with('message', 'The Author was created successfully!');    
     } 
     else{ 
      return View::make('authors.new')->with('title', 'New Author'); 
     } 

    } 

} 

路線

Route::get('authors', array('as' => 'authors', 'uses' => '[email protected]')); 
Route::match(array('GET', 'POST'), 'authors/new', array('as' => 'new_author', 'uses' => '[email protected]')); 

請建議如果我使用正確的方法創建方法,a nd我使用相同的方法添加表單和發佈請求。

謝謝。

回答

1

關閉。如果路由/控制器設置正確,您不需要在控制器操作中測試請求方法。

作者控制器

class AuthorsController extends BaseController { 

public function getIndex() 
{ 
    return View::make('authors.index')->with('title', 'Showing Authors')->with('authors', Author::all()); 
} 

public function getNew() 
{ 
    return View::make('authors.new')->with('title', 'New Author'); //this view should contain a form that POST's to /authors/new 
} 

public function postNew() { 
    $author = Author::create(Input::all()); //note: use $fillable on your model here to prevent any extra fields from breaking things 
    return Redirect::action('[email protected]')->with('message', 'The Author was created successfully!'); 
} 

}

路線

Route::controller("/authors", "AuthorsController") 
+0

...前綴功能確實是Laravel上的美麗事物之一。 –

2

您的代碼probalby工作,但你可以通過一個連接你的路由,控制器和遷移改進資源。

隨着laravel generator package

安裝該軟件包,使用以下命令後:

Route::resource("path","SomeController"); 

您將獲得應用程序生成的資源爲您服務。這包括寧靜的控制器操作列表。

例如,對於主GET方法,您將在您的控制器中生成索引操作。

+0

...工匠本身使命令'php artisan controller:make controller_name'幾乎相同,但不會生成路由。 = d –