我正在按照从这里向我的应用添加上次访问过的功能的教程
https://medium.com/@grmcameron/implementing-last-visited-last-seen-in-laravel-237dbbed9027
基本上,添加一个中间件,将其添加到Kernel.php中的$ middlewareGroups,添加一个datetime列
$table->dateTime('last_online')->nullable();
中间件如下;
namespace App\Http\Middleware;
use Illuminate\Support\Facades\Auth;
use Closure;
class LastOnline
{
public function handle($request, Closure $next)
{
if (!Auth::check()) {
return $next($request);
}
$user = Auth::user();
$user->update([
'last_online' => new \DateTime(),
]);
return $next($request);
}
}
但由于某种原因,该列不会在每个请求上传。
如果我dd($user)
它返回正确的用户,但根本没有更新,也没有生成错误。
什么都没有。
非常感谢任何帮助。
答案 0 :(得分:1)
确保在可填写部分
下的模型中记录了last_onlineprotected $fillable = ['last_online','...','...'];
答案 1 :(得分:0)
您可能想尝试
$user = Auth::user($yourid);
$user->last_online = new \DateTime()
$user->save();
或者
$user = Auth::user($yourid);
$user->last_online = date('Y-m-d H:i:s');
$user->save();
答案 2 :(得分:0)
问题是我需要将last_online添加到User模型中的$ fillable数组。