2014-02-16 2 views
1

Я недавно начали использовать Laravel, я использую следующий успокоительный подход, пожалуйста, предложите, если этот подход хорош ...предложения о успокоительной 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]')); 

Просьба предложить, если я использую правильный подход для создания метода, 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

... Префиксная функция - это, безусловно, одна из прекрасных вещей на Ларавеле. –

2

Ваш код probalby работает, но вы можете улучшить его путем присоединения ваши маршруты, контроллеры и миграции в одном ресурс.

С laravel generator package

После установки этого пакета, с помощью следующей команды:

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

Вы получите генерироваться ресурсы для вас приложение. Это включает в себя список действий успокоительного контроллера.

Например, для основного метода GET у вас будет сгенерированное действие индекса в контроллере.

+0

... сам Artisan делает почти то же самое, по команде 'php artisan controller: make controller_name', но не генерирует маршрут. = D –

Смежные вопросы