Sunday, May 21, 2017

Laravel Second registration form

I'm working on laravel 5.4 i have 3 type of users and all of them working perfectly, 1 of them of course is admin and the 2 other is users and companies, users are using auth default login nd register form and there is no issue on that, what my issue is for companies to register i need a new form I made a blade for companies registration form and register controller for them in app/http/auth folder now form will loading and when I try to save the form it returns me this error:

FatalThrowableError in CompanyRegisterController.php line 54: Type error: Too few arguments to function App\Http\Controllers\Auth\CompanyRegisterController::create(), 0 passed and exactly 1 expected

My line 54 is:

protected function create(array $data)

this is my complete companyregistercontroller:

<?php

namespace App\Http\Controllers\Auth;

use Illuminate\Http\Request;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;

class CompanyRegisterController extends Controller
{

  /**
   * Where to redirect users after registration.
   *
   * @var string
   */
  protected $redirectTo = 'companies';

  public function __construct() {
    $this->middleware('guest:company');
  }

  protected function index()
  {
    return view('auth.company-register');
  }
    /**
     * Get a validator for an incoming registration request.
     *
     * @param  array  $data
     * @return \Illuminate\Contracts\Validation\Validator
     */
    protected function validator(array $data)
    {
        return Validator::make($data, [
            'company_name' => 'required|string|max:255',
            'manager_name' => 'required|string|max:255',
            'address' => 'required|string|max:255',
            'username' => 'required',
            'email' => 'required|string|email|max:255|unique:users',
            'about' => 'sometimes|min:10|max:2000',
            'password' => 'required|string|min:6|confirmed',
        ]);
    }

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return User
     */
    protected function create(array $data)
    {
        return Company::create([
            'company_name' => $data['company_name'],
            'manager_name' => $data['manager_name'],
            'address' => $data['address'],
            'username' => $data['username'],
            'about' => $data['about'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
        ]);
    }
}

UPDATE

My view codes

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <div class="panel panel-default">
                <div class="panel-heading">Companies Register form <span style="float:right;" data-toggle="tooltip" data-placement="top" title="If you need to hire people click here."><a href="#"><i class="fa fa-building"></i> Company register</a></span></div>
                <div class="panel-body">
                  <p>
                  <img src="" class="img-responsive img-circle regimg" alt="Register" >
                  </p>
                    <form class="form-horizontal" role="form" method="POST" action="">
                        
                        <div class="row">
                          <div class="col-md-6">
                            <div class="form-group">
                                <label for="company_name" class="col-md-4 control-label"><i class="fa fa-user-circle"></i> Company Name</label>

                                <div class="col-md-8">
                                    <input id="company_name" type="text" class="form-control" name="company_name" value="" required autofocus>

                                    @if ($errors->has('company_name'))
                                        <span class="help-block">
                                            <strong></strong>
                                        </span>
                                    @endif
                                </div>
                            </div>
                          </div><!-- end col-md-6 -->
                          <div class="col-md-6">
                            <div class="form-group">
                                <label for="manager_name" class="col-md-4 control-label"><i class="fa fa-user-circle-o"></i> Manager Name</label>

                                <div class="col-md-8">
                                    <input id="manager_name" type="text" class="form-control" name="manager_name" value="" required autofocus>

                                    @if ($errors->has('manager_name'))
                                        <span class="help-block">
                                            <strong></strong>
                                        </span>
                                    @endif
                                </div>
                            </div>
                          </div><!-- end col-md-6 -->
                        </div>


                        <div class="row">
                          <div class="col-md-6">
                            <div class="form-group">
                                <label for="address" class="col-md-4 control-label"><i class="fa fa-address-book"></i> Address</label>

                                <div class="col-md-8">
                                    <input id="address" type="text" class="form-control" name="address" value="" required autofocus>

                                    @if ($errors->has('address'))
                                        <span class="help-block">
                                            <strong></strong>
                                        </span>
                                    @endif
                                </div>
                            </div>
                          </div><!-- end col-md-6 -->
                          <div class="col-md-6">
                            <div class="form-group">
                                <label for="email" class="col-md-4 control-label"><i class="fa fa-envelope"></i> E-Mail Address</label>

                                <div class="col-md-8">
                                    <input id="email" type="email" class="form-control" name="email" value="" required>

                                    @if ($errors->has('email'))
                                        <span class="help-block">
                                            <strong></strong>
                                        </span>
                                    @endif
                                </div>
                            </div>
                          </div><!-- end col-md-6 -->
                        </div>




                        <div class="form-group">
                            <label for="username" class="col-md-4 control-label"><i class="fa fa-birthday-cake"></i> username</label>

                            <div class="col-md-6">
                                <input id="username" type="text" class="form-control" name="username" value="" autofocus>

                                @if ($errors->has('username'))
                                    <span class="help-block">
                                        <strong></strong>
                                    </span>
                                @endif
                            </div>
                        </div>

                        <div class="form-group">
                            <label for="about" class="col-md-4 control-label"><i class="fa fa-birthday-cake"></i> about</label>

                            <div class="col-md-6">
                                <input id="about" type="textarea" class="form-control" name="about" value="" autofocus>

                                @if ($errors->has('about'))
                                    <span class="help-block">
                                        <strong></strong>
                                    </span>
                                @endif
                            </div>
                        </div>


                        <div class="form-group">
                            <label for="password" class="col-md-4 control-label"><i class="fa fa-key"></i> Password</label>

                            <div class="col-md-6">
                                <input id="password" type="password" class="form-control" name="password" required>

                                @if ($errors->has('password'))
                                    <span class="help-block">
                                        <strong></strong>
                                    </span>
                                @endif
                            </div>
                        </div>

                        <div class="form-group">
                            <label for="password-confirm" class="col-md-4 control-label"><i class="fa fa-unlock-alt"></i> Confirm Password</label>

                            <div class="col-md-6">
                                <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>
                            </div>
                        </div>

                        <div class="form-group">
                            <div class="col-md-6 col-md-offset-4">
                                <button type="submit" class="btn btn-success btn-bg btn-block">
                                    <i class="fa fa-registered"></i> Register
                                </button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

Any idea why this doesn't work?



via robert nicjoo

Advertisement