2016-10-18 18 views
0

基本的にコントローラとルートの違いは何ですか?ルートファイルを使用してデータを制御することができます。なぜコントローラが必要なのですか?Laravelのコントローラとルート

同様:

<?php 
// app/routes.php 
// route to process the ducks form 
Route::post('ducks', function() 
{ 

// process the form here 

// create the validation rules ------------------------ 
$rules = array(
    'name'    => 'required',      // just a normal required validation 
    'email'   => 'required|email|unique:ducks',  // required and must be unique in the ducks table 
    'password'   => 'required', 
    'password_confirm' => 'required|same:password'   // required and has to match the password field 
); 

// do the validation ---------------------------------- 
// validate against the inputs from our form 
$validator = Validator::make(Input::all(), $rules); 

// check if the validator failed ----------------------- 
if ($validator->fails()) { 

    // get the error messages from the validator 
    $messages = $validator->messages(); 

    // redirect our user back to the form with the errors from the validator 
    return Redirect::to('ducks') 
     ->withErrors($validator); 

} else { 
    // validation successful --------------------------- 

    // our duck has passed all tests! 
    // let him enter the database 

    // create the data for our duck 
    $duck = new Duck; 
    $duck->name  = Input::get('name'); 
    $duck->email = Input::get('email'); 
    $duck->password = Hash::make(Input::get('password')); 

    // save our duck 
    $duck->save(); 

    // redirect ---------------------------------------- 
    // redirect our user back to the form so they can do it all over again 
    return Redirect::to('ducks'); 

} 

}); 

まあ、これは私のコードではありませんが、私はどこかでそれを読んで、しかし、ここでこの人はroutes.phpのファイルで検証を使用している、と私のプロジェクトで、私は検証を使用しましたUserControllerという名前のコントローラで、どのような違いがありますか?

+1

は100の異なるもののために100個の機能を入れてお楽しみください確認してくださいMCVのスタイルでいくつかのプロジェクトを作成して、それを簡単にするために始めたとき

私はLaravelを理解し、同じ問題を抱えていました1つのファイル。コントローラはまったく別のものでもあります。 –

+0

さらに、クロージャベースのルートが1つでもある場合は、ルートキャッシングを利用できません。 – Doom5

答えて

2

ルートコントローラは、ビジネスロジックが書き込まれる場所であるのに対し、コントローラの方法に、例えば、アクションの呼び出しに対する各受信HTTPリクエストを翻訳。すべてのファイルを1つのファイルで処理するのに間違いはありませんが、プロジェクトが大きくなると、そのようなコードを管理するのは悪夢です。それは責任のようなもので、特定のコントローラへのリクエストのルーティング、コントローラの処理、結果の表示を行います。主にデザインパターンです。

2

私たちはすべてのコードをクラスを一切使わずに1つの巨大なファイルにすることもできますが、それは良い考えではありません。現時点でのベストプラクティスは、他の開発者がコードを読んで理解しやすくするために、責任に応じてコードを分けることです(単一責任の原則)。多くの場合、次の開発者は数ヶ月であなた自身です。したがって、クリーンな構造をとることは、他の人に有益なだけでなく、古いコードに戻ったときのあなたの正気性にも役立ちます。

名ルータは、コントローラと、コントローラへのURIから、この場合のクラス敗走データは、その特定のコントローラ用のlaravelで

0

ルートのビジネスルールを扱うことを意味するものでは、アプリケーションの終了を定義する場所ですポイントとコントローラはビ​​ジネスロジックを書く場所です。私は学ぶためにと、私はこの

https://github.com/jagadeshanh/understanding-laravel

関連する問題