Laravel:如何获得DoB?

时间:2014-09-08 06:45:01

标签: php laravel laravel-4

如果给出一份表格,比如一份注册表格,并且您要求客人输入他们的生日以便注册,您如何从所有三个输入中获取数据并将其合并到一个之前将其放入数据库?

在Laravel中,我有一个表单输入:

<select name="birthdayMonth">
  <option value="1">January</option>
</select>
<select name="birthdayDay">
  <option value="1">01</option>
</select>
<select name="birthdayYear">
  <option value="1900">1900</option>
</select>

所以,有了这个,当我点击提交并且POST控制器接到电话时,我就是这个方法所做的:

  public function processRegister() {
    $user = new User(Input::all());
    $user->password = md5(Input::get('password'));
    $user->save();

    return View::make('user.registerSuccess');
  }

好的,那么,如何将使用Input :: all()传入的三个输入格式化为一个生日输入?我没有&#34; birthdayMonth&#34;,&#34; birthdayDay&#34;和&#34; birthdayYear&#34;我的数据库中的表。我所拥有的只是一个时间戳&#34;生日&#34;。

我是否需要让它在模型中看起来很丑陋并防止这三种输入的质量分配,或者是否有一种更漂亮,看似更好的方法来做到这一点?

如果您需要更多信息,请让我和我尽快处理。

感谢。

3 个答案:

答案 0 :(得分:0)

您必须使用日,月和年数据将日期转换为时间戳。请参阅PHP函数mktime();

$input = Input::all();
$input->birthday = mktime(0,0,0, $input['month'], $input['day'], $input['year']); 
$user = new User($input);
$user->save();

答案 1 :(得分:0)

$user = new User(Input::all());
$user->password = md5(Input::get('password'));

$birthday = Input::get('birthdayYear')."-".Input::get('birthdayMonth')."-".Input::get('birthdayDay');

$user->birthday = date('Y-m-d H:i:s', strtotime($birthday));
$user->save();

尝试这样的事情:)

答案 2 :(得分:0)

Laravel用户 出生日期dob ======将此添加到您的blade / user.blade.php =======

$2

=========然后Model / user.php ======

<input id="dob" type="date" class="form-control" name="dob" value="{{ old('dob') }}" required autofocus>
   @if ($errors->has('dob'))
   <span class="help-block">
   <strong>{{ $errors->first('dob') }}</strong>
   </span>
    @endif

====== Controller / UserController.php =====

protected $dates = [
    'dob'
    ];

希望它能够