如何散列最后一个插入id并设置到请求中,然后保存到laravel中的db中。?
下面是我的要求,非常好。我只是想知道这是两次使用save函数的最佳方法吗?这真的让我很困扰,我正在寻找一种最好的方法来散列最后一个insert id并设置为visitor_id以保存到db中。 记住,在散列访问者id之前,我正在发送如何散列最后一个插入id并设置到请求中,然后保存到laravel中的db中。?,laravel,hash,eloquent,Laravel,Hash,Eloquent,下面是我的要求,非常好。我只是想知道这是两次使用save函数的最佳方法吗?这真的让我很困扰,我正在寻找一种最好的方法来散列最后一个insert id并设置为visitor_id以保存到db中。 记住,在散列访问者id之前,我正在发送$request->visitor\u id NULL 这是我的要求: $visit->funnel_id = $request->funnel_id; $visit->page_id = $request->page_id; $visit-
$request->visitor\u id NULL
这是我的要求:
$visit->funnel_id = $request->funnel_id;
$visit->page_id = $request->page_id;
$visit->traffic_source_id = $request->traffic_source_id;
$visit->visitor_id = $request->visitor_id;
$visit->save();
$hashid = new Hashid();
$visit->visitor_id = $hashid->encode($visit->id);
$visit->save();
试一试
或
您可以添加“nextId”功能,并在访客模型中包括
illumb\Support\Facades\DB
facade
public function nextId(){
$statement = DB::select("SHOW TABLE STATUS LIKE '".$this->getTable()."'");
return $statement[0]->Auto_increment;
}
您可以在代码中实现如下内容:
$visit->funnel_id = $request->funnel_id;
$visit->page_id = $request->page_id;
$visit->traffic_source_id = $request->traffic_source_id;
$hashid = new Hashid();
$visit->visitor_id = $hashid->encode($visit->nextId());
$visit->save();
访客Id是否为自动递增主键?@SurenderSinghRawat不会将访客Id名称解释为某个表的Id。我的意思是,就数据库而言,它不是某个表的外键或主键。我想你还没有明白我的意思,我已经在这么做了。我在寻找最好的解决方案意味着寻找一行代码,将不必使用多次保存功能。或者使用两次保存功能。我的代码行运行良好,我只是在寻找最好的解决方案。
$hashid = new Hashid();
$visit->visitor_id = $hashid->$visit->id;
$visit->save();
public function nextId(){
$statement = DB::select("SHOW TABLE STATUS LIKE '".$this->getTable()."'");
return $statement[0]->Auto_increment;
}
$visit->funnel_id = $request->funnel_id;
$visit->page_id = $request->page_id;
$visit->traffic_source_id = $request->traffic_source_id;
$hashid = new Hashid();
$visit->visitor_id = $hashid->encode($visit->nextId());
$visit->save();