web-dev-qa-db-fra.com

Comment puis-je insérer des données dans la base de données Laravel?

Je suis nouveau en programmation. J'ai créé un formulaire de base dans views/register.blade.php comme ceci 

         @section('content')
<h1>Registration Form</h1><hr>
<h3>Please insert the informations bellow:</h3>
{{Form::open(array('url'=>'test/register','method'=>'post'))}}
<input type="text" name="username" placeholder="username"><br><br>
<input type="text" name="email" placeholder="email"><br><br>
<input type="password" placeholder="password"><br><br>
<input type="submit" value="REGISTER NOW!">
{{Form::close()}}@stop

J'ai un contrôleur. comme ça 

         public function create()
         {
             $user= Input::all();
               $user = new User;
               $user->username = Input::get('username');
               $user->email = Input::get('email');
               $user->password = Input::get('password');
               $user->save();

            return Redirect::back();
        } 

Voici mon itinéraire:

Route::get('test/register', array('uses'=>'TestController@create'))

Je ne peux pas enregistrer les utilisateurs via le formulaire. Voulez-vous s'il vous plaît me suggérer comment faire cela?

5
MD. Atiqur Rahman

L'erreur MethodNotAllowedHttpException signifie que la route existe, mais que la méthode HTTP (GET) est incorrecte. Vous devez le changer en POST:

Route::post('test/register', array('uses'=>'TestController@create'));

En outre, vous devez hacher vos mots de passe:

public function create()
{
    $user = new User;

    $user->username = Input::get('username');
    $user->email = Input::get('email');
    $user->password = Hash::make(Input::get('password'));
    $user->save();

    return Redirect::back();
}

Et j'ai enlevé la ligne:

$user= Input::all();

Parce que dans la commande suivante, vous remplacez son contenu par

$user = new User;

Pour déboguer votre entrée, vous pouvez, dans la première ligne de votre contrôleur:

dd( Input::all() );

Il affichera tous les champs de l'entrée.

9

assurez-vous d’utiliser lePOSTpour insérer les données. En fait, vous utilisiezGET.

2
Carlos

Première méthode que vous pouvez essayer 

$department->department_name = $request->department_name;
$department->status = $request->status;
$department->save();

Un autre moyen d'insérer des enregistrements dans la base de données avec la fonction create

$department = new Department;           
// Another Way to insert records
$department->create($request->all());

return redirect('admin/departments');

Vous devez définir le modèle rempli dans le département

namespace App;

use Illuminate\Database\Eloquent\Model;

class Department extends Model
{
    protected $fillable = ['department_name','status'];
} 
0
Nikunj K.