2016-08-30 67 views
0

我是lavarel的新手......昨晚我不得不去学习它。我实施了默认注册表。我附加了我自己的领域和数据,一切工作正常。现在我有一个挑战,从我的RegistrationView中的隐藏字段传递值到我的RegisterController,以便它可以保存在数据库中。基本上,我有两个注册查看其中的隐藏的字段值将确定哪些登记表是Lavarel将隐藏字段中的变量传递给RegisterController

---这是我RegisterController ---

<?php 

namespace revolutions\Http\Controllers\Auth; 

use revolutions\User; 
use Validator; 
use revolutions\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\RegistersUsers; 
use Mail; 
use Input; 

use revolutions\Http\Controllers\SmsController; 


class RegisterController extends Controller 
{ 
    /* 
    |-------------------------------------------------------------------------- 
    | Register Controller 
    |-------------------------------------------------------------------------- 
    | 
    | This controller handles the registration of new users as well as their 
    | validation and creation. By default this controller uses a trait to 
    | provide this functionality without requiring any additional code. 
    | 
    */ 

    use RegistersUsers; 

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

    /** 
    * Create a new controller instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     $this->middleware('guest'); 
    } 

    //Random number Generating Function 
    public function generatePin($number) { 
    // Generate set of alpha characters 
    $alpha = array(); 
    for ($u = 65; $u <= 90; $u++) { 
     // Uppercase Char 
     array_push($alpha, chr($u)); 
    } 

    // Just in case you need lower case 
    // for ($l = 97; $l <= 122; $l++) { 
    // // Lowercase Char 
    // array_push($alpha, chr($l)); 
    // } 

    // Get random alpha character 
    $rand_alpha_key = array_rand($alpha); 
    $rand_alpha = $alpha[$rand_alpha_key]; 

    // Add the other missing integers 
    $rand = array($rand_alpha); 
    for ($c = 0; $c < $number - 1; $c++) { 
     array_push($rand, mt_rand(0, 9)); 
     shuffle($rand); 
    } 

    return implode('', $rand); 
} 

    /** 
    * 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, [ 
      'name' => 'required|max:255', 
      'surname' => 'required|max:255', 
      'cellphone' => 'required|max:10', 
      'address' => 'required|max:100', 
      'email' => 'required|email|max:255|unique:users', 
      'password' => 'required|min:6|confirmed', 
      'bankname' => 'required|max:100', 
      'accountnumber'=>'required|max:100', 
      'holdername' => 'required|max:100', 
      'branchcode' => 'required|max:10', 
     ]); 
    } 

    /** 
    * Create a new user instance after a valid registration. 
    * 
    * @param array $data 
    * @return User 
    */ 
    protected function create(array $data) 
    { 
     $user = User::create([ 
      'reference_number' => $this->generatePin(13), 
      'name' => $data['name'], 
      'surname' => $data['surname'], 
      'cellphone' => $data['cellphone'], 
      'address' => $data['address'], 
      'email' => $data['email'], 
      'password' => bcrypt($data['password']), 
      'bankname' => $data['bankname'], 
      'accountnumber' => $data['accountnumber'], 
      'holdername' => $data['holdername'], 
      'branchcode' => $data['branchcode'], 
      'package'=>'bronze', 
     ]); 

      Mail::send('mail.registeremail', $data, function($message) use ($data) 
      { 
       $message->from('[email protected]', "Revolutions"); 
       $message->subject("Welcome to Revolutions"); 
       $message->to($data['email']); 
      }); 

      $mesg = "Welcome to Revolutions.Reference Number" . $this->generatePin(13); 
$sms = new SmsController(); 

       $sms->sendSms($data['cellphone'],$mesg); 


return $user; 
    } 


} 

现在值IM流逝而被绑定到'包'列在我的创建查询构建。预先感谢您

+0

问题是什么? –

+0

那么它的语法方法的问题....我明白输入字段会看起来像这样“ ....我在哪里“?”是我有挑战的地方..我如何构造语法,以便它可以传递给控制器​​ – codex

+0

控制器在哪里显示表单? –

回答

0

该视图通过包括隐藏的所有字段以相同的方式。 你没有提供你的代码中的视图,所以我想你应该操纵它作为其他表单域。 你应该更改下面的代码:

$user = User::create([ 
     'reference_number' => $this->generatePin(13), 
     'name' => $data['name'], 
     'surname' => $data['surname'], 
     'cellphone' => $data['cellphone'], 
     'address' => $data['address'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
     'bankname' => $data['bankname'], 
     'accountnumber' => $data['accountnumber'], 
     'holdername' => $data['holdername'], 
     'branchcode' => $data['branchcode'], 
     'package'=>'bronze', 
    ]); 

要这样:

$user = User::create([ 
     'reference_number' => $this->generatePin(13), 
     'name' => $data['name'], 
     'surname' => $data['surname'], 
     'cellphone' => $data['cellphone'], 
     'address' => $data['address'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
     'bankname' => $data['bankname'], 
     'accountnumber' => $data['accountnumber'], 
     'holdername' => $data['holdername'], 
     'branchcode' => $data['branchcode'], 
     'package'=> $data['hiddenfieldname'], 
    ]); 

如果这不起作用尝试我使用在我的项目是什么:

protected function create(Request $request) 
{ 
    $input = $request->all(); 
    $user = new User; 
    $user->name = $input['name']; 
    $user->surname = $input['surname']; 
    ... 
    $user->package = $input['hiddenfieldname']; 
    $user->save(); 

} 

要使用要求您必须包含在您的控制器的顶部 此use App\Http\Requests; 最后一种方法对我来说更加干净。我希望我帮助!

+0

IT WORKED !! THANK YOU – codex

+0

我很高兴我的帮助如果你能标记为正确答案以帮助别人找到解决方案! –

相关问题