Enregistrer les données dans la base de données dans Laravel 5

Première

J'ai écrit un script de migration.


Deuxième

Je lance le php artisan migrate à migrer de la table dans ma base de données.


Base de données

Maintenant, j'ai un subscribes table dans ma base de données.
Il dispose de 2 champs : id, et email.

Enregistrer les données dans la base de données dans Laravel 5


Route

Route::post('/subscribe', array('as' =>'subscribe','uses'=>'AccountController@postSubscribe'));


Modèle

<?php namespace App;

use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;

class Subscribe extends Model {

    protected $table = 'subscribes';


    //Validation Rules and Validator Function
    public static function validator($input){

        $rules = array(
            'email'    =>'required|email'
        );

        return Validator::make($input,$rules);
    }

}

Contrôleur

<?php namespace App\Http\Controllers;

use Input, Validator, Auth, Redirect;

class AccountController extends Controller {

    public function postSubscribe() {

            $subscribe        = new Subscribe; <-------- Line#46 (BUG HERE)
            $subscribe->email = Input::get('email');
            $subscribe->save();

            dd("Hi");

            return Redirect::to('/')
                ->with('success','You have been successfully subscribe to us.');

        }
}

?>

Erreur

Enregistrer les données dans la base de données dans Laravel 5


Questions

Pourquoi ne puis-je pas faire $subscribe = new Subscribe;?

Quelle est la meilleure pratique pour insérer des données dans la base de données à l'aide de Laravel 5 ?


Mise à jour

Grâce à @Mark Baker.
Il semble que j'ai un problème avec mon espace de noms.

Ce namspacing est un peu confus pour moi.
Quelqu'un peut-il veuillez de clarifier ou d'expliquer un peu ?

Tout est appréciée.

Merci à l'avance.

Votre Abonnez modèle est dans l'espace de noms App; vous ne mentionnez pas l'espace de noms pour votre contrôleur: alors, peut-être $subscribe = new \App\Subscribe;
Regardez comme il corrige mon problème. :D. Comment puis-je résoudre ce problème si je ne veux pas utiliser `\App` avant mon abonnez-vous.
Si vous ne voulez pas de déclarer l'espace de noms chaque fois que vous instanciez un abonnement de modèle, il n'y a pas d'espace de noms, ou de définir un use en haut de votre Contrôleur
Je ne suis pas sûr de ce que sera l', c'est pourquoi je le laisse. Il ressemble à ceci <?php namespace App\Http\Controllers; je pense qu'ils viennent avec des L5 en tant que par défaut. Donc, ne vous suggérons de prendre off namespace App\Http\Controllers;, Sera-ce l'effet de quelque chose ? Je ne l'espère pas.
J'ai essayé de l'enlever, et de voir ce message d'erreur : The use statement with non-compound name 'Input' has no effect

OriginalL'auteur kyo | 2015-04-21