Laravel - 模型默认值
Laravel - Model Default value
我有一个table喜欢-
http://i.stack.imgur.com/xFHSP.png
它的模型是这样的-
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
class WebinarLiveAttenders extends Model
{
protected $table = 'webinar_live_attenders';
protected $primaryKey='id';
protected $fillable = array('webinar_id','ip','last_update');
public $timestamps=false;
public function webinars()
{
return $this->hasOne('App\Webinar');
}
}
我是运行这样的查询-
public function post_update_user_status()
{
//Request::getClientIp();
$requestData = Request::all();
$date = new DateTime;
$formatted_date = $date->format('Y-m-d H:i:s');
$user_status = WebinarLiveAttenders::firstOrNew([
'webinar_id' => $requestData['uuid'],
'ip' => Request::getClientIp()
]);
$user_status->last_update = $formatted_date;
$user_status->save();
return 'Done';
}
问题是我总是得到 time_on=0。
但我希望它是创作的时间。
我不能在这里使用时间戳。
有人可以帮忙吗?
首先你需要把time_on
放进去,
protected $fillable = array('webinar_id','ip','last_update', 'time_on');
我建议您将 created_at
updated_at
和 deleted_at
字段用于 softDelete()
。
就像,Laravel
会知道您在说什么,并为您简化事情。
应该是:
protected $fillable = array('webinar_id','ip','created_at' 'updated_at', 'deleted_at');
在以后的网络应用中记住这一点。
您需要将 time_on
明确设置为格式化日期。
您可以检查 $user_status->exists
是否存在于数据库中。
if(!$user_status_>exists) {
// First creation of user_status, so lets set a creation_date
$user_status->time_on = $formatted_date;
}
$user_status->last_updated = $formatted_date;
$user->save();
我有一个table喜欢-
http://i.stack.imgur.com/xFHSP.png
它的模型是这样的-
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
class WebinarLiveAttenders extends Model
{
protected $table = 'webinar_live_attenders';
protected $primaryKey='id';
protected $fillable = array('webinar_id','ip','last_update');
public $timestamps=false;
public function webinars()
{
return $this->hasOne('App\Webinar');
}
}
我是运行这样的查询-
public function post_update_user_status()
{
//Request::getClientIp();
$requestData = Request::all();
$date = new DateTime;
$formatted_date = $date->format('Y-m-d H:i:s');
$user_status = WebinarLiveAttenders::firstOrNew([
'webinar_id' => $requestData['uuid'],
'ip' => Request::getClientIp()
]);
$user_status->last_update = $formatted_date;
$user_status->save();
return 'Done';
}
问题是我总是得到 time_on=0。
但我希望它是创作的时间。
我不能在这里使用时间戳。
有人可以帮忙吗?
首先你需要把time_on
放进去,
protected $fillable = array('webinar_id','ip','last_update', 'time_on');
我建议您将 created_at
updated_at
和 deleted_at
字段用于 softDelete()
。
就像,Laravel
会知道您在说什么,并为您简化事情。
应该是:
protected $fillable = array('webinar_id','ip','created_at' 'updated_at', 'deleted_at');
在以后的网络应用中记住这一点。
您需要将 time_on
明确设置为格式化日期。
您可以检查 $user_status->exists
是否存在于数据库中。
if(!$user_status_>exists) {
// First creation of user_status, so lets set a creation_date
$user_status->time_on = $formatted_date;
}
$user_status->last_updated = $formatted_date;
$user->save();