QQQ
QQQ

Reputation: 1

laravel 5 multi form data save in database

I use two different forms and connected to database it's working fine. But when I do an insert values stored as two different rows in database.

When do we have to use seeder? Is what I wrote coding proper laravel 5?

Controller file

<?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Http\Requests\ListFormRequest;
use App\Http\Requests\LoginFormRequest;
use Illuminate\Support\Facades\Input;

use Illuminate\Http\Request;
use Response;
use App\Test;

class testController extends Controller {

  public function test()
  {
    return view('test',array('title' => 'test'));
  }

  public function lockTest(ListFormRequest $test)
  {   $user = new Test();
    $user->firstname = Input::get('firstname');
    $user->password = Input::get('password');
    $user->email = Input::get('email');

    $user->save();

    return view('login');
  }

  public function login()
  {
    return view('login',array('title' => 'login'));
  }

  public function userLogin(LoginFormRequest $test1)
  {
    $user = new Test();
    $user->lastname = Input::get('lastname');
    $user->middlename = Input::get('middlename');
    $user->save();

    return Response::make('Sucessfully Registered!');
  }
}

Route file

<?php

Route::get('/', 'testController@test');
Route::post('login', 'testController@lockTest');
Route::get('login', 'testController@login');
Route::post('userLogin', 'testController@userLogin');


Route::controllers([
  'auth' => 'Auth\AuthController',
  'password' => 'Auth\PasswordController',
]);

Seeder file

   <?php

    use Illuminate\Database\Seeder; 
    use Illuminate\Database\Eloquent\Model;
    use App\Test;

    class TestsSeeder extends Seeder {

      public function run()  {
      DB::table('users')->truncate();


      $qwerty = Input::all();

      foreach($qwerty as $qwertySingle) {
        Test::create([
            'firstname'  => $qwertySingle->firstname,
            'password'   => $qwertySingle->password,
            'email'      => $qwertySingle->email,
            'lastname'   => $qwertySingle->lastname,
            'middlename' => $qwertySingle->middlename,
        ]);
      } 

     DB::table('tests')->insert($qwerty);

     }
   }

Model file

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

use App\DB;

class Test extends Model {

  protected $guarded = array();
  protected $table = 'tests';

  protected $fillable = ['firstname', 'password', 'email', 'lastname', 'middlename'];
}

Upvotes: 0

Views: 2485

Answers (1)

user2094178
user2094178

Reputation: 9464

The seeder is used when you want to populate your database with fake data, so you can test the waters of your app with thousands of dummy records.

The run method from your seeder should be something like the following, to give you some ideas:

  Test::truncate();
  Test::unguard();

  $password = Hash::make('secret');

  foreach (range(1, mt_rand(10, 20)) as $index) {
    Test::create([
        'firstname'  => "first name {$index}",
        'password'   => $password,
        'email'      => "myemail{$index}@mydomain.com",
        'lastname'   => "last name {$index}",
        'middlename' => "middlename {$index}",
    ]);
  }

Upvotes: 1

Related Questions