簡體   English   中英

如何在laravel中填寫一個空白字段?

[英]how to fill a empty field in laravel?

我目前在我的注冊表格中有一個“參考代碼”字段,我正在使用下面的代碼通過鏈接預填充此字段。 默認代碼在我的管理面板中。 我希望如果用戶注冊時沒有引薦鏈接,則該字段應自動填充$ basic-> reference_id

<input type="text" name="reference" value="{{ app('request')->input('ref')}}" required class="form-control" placeholder="Enter Reference ID *" aria-describedby="basic-addon1">

控制器代碼:

<?php

namespace App\Http\Controllers\Auth;

use App\BasicSetting;
use App\GeneralSetting;
use App\Mail\verifyEmail;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Str;
use Intervention\Image\Facades\Image;

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 registration.
     *
     * @var string
     */
    protected $redirectTo = '/user/dashboard';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $basic = BasicSetting::first();
        if ($basic->reCaptcha_status == 1){
            Config::set('captcha.secret', $basic->secret_key);
            Config::set('captcha.sitekey', $basic->site_key);
        }
        $this->middleware('guest');
    }

    /**
     * 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|string|max:255',
            'email' => 'required|string|email|max:255|unique:users',
            'password' => 'required|string|min:6|confirmed',
            'g-recaptcha-response' => 'captcha',
            'country' => 'required'
        ]);
    }

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return User
     */

    protected function create(array $data)
    {
        $basic = BasicSetting::first();
        $status = $basic->verify_status == 1 ? '0' : '1';
        $image25 = 'user-default.png';
        if ($basic->reference_id == $data['reference']){
            $user = User::create([
                'name' => $data['name'],
                'email' => $data['email'],
                'phone' => $data['phone'],
                'address' => $data['address'],
                'country' => $data['country'],
                'zip' => $data['zip'],
                'under_reference' => $data['reference'],
                'password' => bcrypt($data['password']),
                'verifyToken' => Str::random(40),
                'reference' => Str::random(12),
                'status' => $status,
                'image' => $image25
            ]);
        }else{
            $us = User::whereReference($data['reference'])->count();
            if ($us != 0)
            {
                $user = User::create([
                    'name' => $data['name'],
                    'email' => $data['email'],
                    'country' => $data['country'],
                    'zip' => $data['zip'],
                    'phone' => $data['phone'],
                    'address' => $data['address'],
                    'under_reference' => $data['reference'],
                    'password' => bcrypt($data['password']),
                    'verifyToken' => Str::random(40),
                    'reference' => Str::random(12),
                    'status' => $status,
                    'image' => $image25
                ]);
            }else{
                Session::flash('type','danger');
                Session::flash('message','Opps.. Your Reference ID in not Correct.');
                return redirect()->route('home');
            }
        }

        if ($basic->verify_status == 1){
            $thisUser = User::findOrFail($user->id);
            $this->sendEmail($thisUser);
        }
        return $user;
    }
    public function sendEmail($thisUser)
    {
        $general = GeneralSetting::first();

        $hh  = ['s_title'=>$general->title,'s_footer'=>$general->footer_bottom_text];

        $mail_val = [
              'email' => $thisUser['email'],
                'name' => $thisUser['name'],
                'g_email' => $general->email,
                'g_title' => $general->title,
                'subject' => 'Verify Account',
            ];
            Config::set('mail.driver','mail');
            Config::set('mail.from',$general->email);
            Config::set('mail.name',$general->title);
            Mail::send('auth.verify-email', ['email' =>$thisUser['email'] ,'verifyToken'=>$thisUser['verifyToken'],'site_title'=>$hh['s_title'],'site_footer'=>$hh['s_footer']], function ($m) use ($mail_val) {
                $m->from($mail_val['g_email'], $mail_val['g_title']);
                $m->to($mail_val['email'], $mail_val['name'])->subject($mail_val['subject']);
            });

    }
    public function verifyDone($email,$verifyToken)
    {
        $user = User::where(['email'=>$email,'verifyToken'=>$verifyToken])->first();
        if ($user)
        {
            User::where(['email'=>$email,'verifyToken'=>$verifyToken])->update(['status'=>1,'verifyToken'=>null]);
            Session::flash('type','success');
            Session::flash('message','Your Account Verified Successfully. Please Log In Now.');
            return redirect()->route('login');
        }else{
            Session::flash('type','danger');
            Session::flash('message','Opps..! Something is Wrong.');
            return redirect()->route('login');
        }
    }
}

在提交此表單的控制器中,檢查請求的引薦ID字段是否有效。 如果有效,則可以使用;如果無效或為空,則可以使用基本引薦ID。

我會在一開始在您的控制器中設置一個變量。 這是將使用請求的建議,但如果請求值為null,則默認為基本參考:

`$ referance_id = $ data ['reference']?:$ basic-> reference_id;

這是我認為應該可以使用的控制器的更新版本。

protected function create(array $data)
{
    $basic = BasicSetting::first();
    $status = $basic->verify_status == 1 ? '0' : '1';
    $image25 = 'user-default.png';

    $reference = $data['reference'] ?: $basic->reference_id;

    $us = User::whereReference($data['reference'])->count();

    if ($us > 0) {
        Session::flash('type','danger');
        Session::flash('message','Opps.. Your Reference ID in not Correct.');
        return redirect()->route('home');
    }

    $user = User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'phone' => $data['phone'],
        'address' => $data['address'],
        'country' => $data['country'],
        'zip' => $data['zip'],
        'under_reference' => $data['reference'],
        'password' => bcrypt($data['password']),
        'verifyToken' => Str::random(40),
        'reference' => Str::random(12),
        'status' => $status,
        'image' => $image25
    ]);

    if ($basic->verify_status == 1){
        $thisUser = User::findOrFail($user->id);
        $this->sendEmail($thisUser);
    }
    return $user;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM