laravel 中未正确获取最后一条记录 ID
Last record id not fetched properly in laravel
我正在尝试检索我在 laravel 6
中订阅的最后一条记录 ID table
以下是我的函数
public function activateApp($id)
{
$app = App::where('appId','=',$id)->firstOrFail();
if($app->payment_option == 'monthly')
{
$renewDate = date('Y-m-d', strtotime(date("Y-m-d", strtotime("+30 day"))));
}
else
{
$renewDate = date('Y-m-d', strtotime(date("Y-m-d", strtotime("+365 day"))));
}
$lastdata = DB::table('subscriptions')->orderBy('id', 'desc')->first();
//dd($lastdata);
//die();
//update app table records
DB::table('apps')
->where('appId', $id)
->update([
'status' => $lastdata,
'renewDate' => $renewDate
]);
return redirect()->route('home');
}
我用过
$lastdata = DB::table('subscriptions')->orderBy('id', 'desc')->first();
获取 id,但是当我尝试从该值更新我的应用程序 table ststus 列时它似乎无法正常工作,它没有更新甚至没有给出错误..即使'dd' 也不能正常工作。
(整个功能似乎在最后一次获取记录后停止工作)
您正在尝试用整个 $lastdata
对象更新 status
。
我不知道你的数据库架构,但你可能应该尝试类似
DB::table('apps')
->where('appId', $id)
->update([
'status' => $lastdata->status,
'renewDate' => $renewDate
]);
您还可以仔细检查数据库 subscriptions
是否有行并且它不为空。
您将使用订阅对象更新状态字段。还有一件事是您不需要再次检索应用程序对象,因为您已经有了,所以只需更改值并保存即可。
public function activateApp($id) {
$app = App::where('appId','=',$id)->firstOrFail();
if($app->payment_option == 'monthly')
{
$renewDate = date('Y-m-d', strtotime(date("Y-m-d", strtotime("+30 day"))));
}
else
{
$renewDate = date('Y-m-d', strtotime(date("Y-m-d", strtotime("+365 day"))));
}
$lastdata = DB::table('subscriptions')->orderBy('id', 'desc')->first();
//update app table records
$app->status = $lastdata->status;
$app->renewDate = $renewDate;
if ($app->save()) {
return redirect()->route('home');
} else {
// show some error page.
}
}
我正在尝试检索我在 laravel 6
中订阅的最后一条记录 ID table以下是我的函数
public function activateApp($id)
{
$app = App::where('appId','=',$id)->firstOrFail();
if($app->payment_option == 'monthly')
{
$renewDate = date('Y-m-d', strtotime(date("Y-m-d", strtotime("+30 day"))));
}
else
{
$renewDate = date('Y-m-d', strtotime(date("Y-m-d", strtotime("+365 day"))));
}
$lastdata = DB::table('subscriptions')->orderBy('id', 'desc')->first();
//dd($lastdata);
//die();
//update app table records
DB::table('apps')
->where('appId', $id)
->update([
'status' => $lastdata,
'renewDate' => $renewDate
]);
return redirect()->route('home');
}
我用过
$lastdata = DB::table('subscriptions')->orderBy('id', 'desc')->first();
获取 id,但是当我尝试从该值更新我的应用程序 table ststus 列时它似乎无法正常工作,它没有更新甚至没有给出错误..即使'dd' 也不能正常工作。
(整个功能似乎在最后一次获取记录后停止工作)
您正在尝试用整个 $lastdata
对象更新 status
。
我不知道你的数据库架构,但你可能应该尝试类似
DB::table('apps')
->where('appId', $id)
->update([
'status' => $lastdata->status,
'renewDate' => $renewDate
]);
您还可以仔细检查数据库 subscriptions
是否有行并且它不为空。
您将使用订阅对象更新状态字段。还有一件事是您不需要再次检索应用程序对象,因为您已经有了,所以只需更改值并保存即可。
public function activateApp($id) {
$app = App::where('appId','=',$id)->firstOrFail();
if($app->payment_option == 'monthly')
{
$renewDate = date('Y-m-d', strtotime(date("Y-m-d", strtotime("+30 day"))));
}
else
{
$renewDate = date('Y-m-d', strtotime(date("Y-m-d", strtotime("+365 day"))));
}
$lastdata = DB::table('subscriptions')->orderBy('id', 'desc')->first();
//update app table records
$app->status = $lastdata->status;
$app->renewDate = $renewDate;
if ($app->save()) {
return redirect()->route('home');
} else {
// show some error page.
}
}