PHP Месяц год выбор дня выпадающий список для создания формата даты в промежуточном программном обеспечении laravel - PullRequest
1 голос
/ 25 апреля 2019

У меня есть 3 поля в дате рождения, дне, месяце и году, в виде 3 выпадающего списка.Я хочу сохранить их в одном столбце Date_of_birth в базе данных.

Как решить эту проблему в промежуточном программном обеспечении?

Попытка

public function dob($request, Closure $next) {
    $dobrequest -> all();
    if (isset($dobrequest['day'] && $dobrequest['month'] &&                $dobrequest['year'])) {
        $dobrequest['dob'] = $dobrequest['day']."/".$dobrequest['month']."/". $dobrequest['year'];            
    }
    $request ->replace($dobrequest);
    return $next($request);
}

register.blade.php

<div class="col-md-6 pull-left" style="padding-left:0px;">
   <font size="3">  <label for="dob">Date of Birth</label><br class="clearfix" />
      <div class="form-group clearfix">
          <label for="dob_month" class="sr-only">Month</label>
                  <select name = "dob" id="m" class="form-control">
                     <option>Month</option>
                      @for ($month = 1; $month <= 12; $month++)                  <option value = "{{ $month }}">{{ $month }}</option>                   @endfor
                    </select>
      </div>
      <div class="form-group">
            <label for="dob_day" id="d" class="sr-only">Day</label>
                  <select name = "dob" class="form-control">
                      <option>Day</option>
                        @for ($day = 1; $day <= 31; $day++)                    <option value = "{{ $day }}">{{ $day }}</option>                    @endfor
                  </select>
      </div>
      <div class="form-group">
            <label for="dob_year" id="y" class="sr-only">Year</label>
                  <select name = "dob" class="form-control">
                       <option>year</option>
                      @for ($year = 1950; $year <= 2052 ; $year++)                  <option value = "{{ $year }}">{{ $year }}</option>                  @endfor
                  </select>
      </div>

    </font>
  </div>

registercontroller.php

protected function create(array $data)
    {

       dd($data);

        return User::create([
            'fname' => $data['fname'],
            'lname' => $data['lname'],
            'email' => $data['email'],
            'zipcode' => $data['zipcode'],
            'password' => Hash::make($data['password']),
            'gender' => $data['gender'],
            'dob' => $data['day'],$data['month'],$data['year'],
            'health' => $data['health'],
        ]); 

    }

модель-> user.php

protected $fillable = [
        'fname','lname', 'email','zipcode', 'password','gender','dob','health',
    ];

#migration

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('fname');
            $table->string('lname');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('zipcode');
            $table->string('password');
            $table->string('gender');
            $table->DATE('dob');
            $table->string('health');
            $table->rememberToken();
            $table->timestamps();
        });
    }



    ];

Ответы [ 2 ]

1 голос
/ 04 июня 2019
public function handle($request, Closure $next)
    {
        $dobrequest = $request->all();
        if(isset($dobrequest['year']) && isset($dobrequest['month']) && isset($dobrequest['day'])){
            $dobrequest['dob'] = $dobrequest['year'].'-'.$dobrequest['month'].'-'. $dobrequest['day']; 
        }
        $request->replace($dobrequest);
        return $next($request);
    }
}
1 голос
/ 25 апреля 2019

Вы можете создать вспомогательный класс для формата даты, дня и года, строки в формате даты и определить функцию, например:

public function formatDate($year, $month, $day) {
   return strftime("%F", strtotime($year."-".$month."-".$day));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...