You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel记录新用户注册日志时变量返回null的问题求助

问题:Laravel日志方法返回null导致数据库存储错误

我在记录新用户注册日志时遇到问题,代码行$log_message = Log::channel('logRegisterUser')->info("{$name_user} registered using the IP {$ip_user} in {$data}.");中,$log_message的值为null,导致执行'description_log' => $log_message时出错,用dd()验证过该变量确实是null。

相关配置与代码

logging.php

'logRegisterUser' => [
    'driver' => 'single',
    'path' => storage_path('logs/logRegisterUser.log'),
    'level' => 'debug',
],

RegisteredUserController.php

public function __construct()
{
    $this->logModel = new LoggingModel();
}

public function create()
{
    return view('auth.register');
}

public function store(Request $request)
{
    $request->validate([
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'confirmed', Rules\Password::defaults()],
    ]);

    $user = User::create([
        'name' => $request->name,
        'email' => $request->email,
        'password' => Hash::make($request->password),
    ]);

    event(new Registered($user));

    $date = Carbon::now()->format('d/m/Y H:i:s');
    $name_user = $user->name;
    $ip_user = request()->ip();
    $log_message = Log::channel('logRegisterUser')->info("{$name_user} registered using the IP {$ip_user} in {$data}.");

    $this->logModel->create([
        'description_log' => $log_message,
        'relation' => '',
    ]);

    Auth::login($user);
    return redirect(RouteServiceProvider::HOME);
}

解决方法

1. 日志方法本身不返回内容

Laravel的Log::info()(包括其他日志级别方法)无返回值,它仅负责将内容写入指定日志文件,调用后自然返回null。需要先单独构建日志内容字符串,再分别执行“写入日志”和“存入数据库”的操作。

2. 修复变量名拼写错误

代码中定义的变量是$date,但日志字符串里误用了{$data},这会触发Undefined variable: data错误,同时导致日志内容异常。

修正后的代码片段

将store方法中日志相关代码替换为:

$date = Carbon::now()->format('d/m/Y H:i:s');
$name_user = $user->name;
$ip_user = request()->ip();

// 先构建完整的日志内容
$logContent = "{$name_user} registered using the IP {$ip_user} in {$date}.";

// 写入日志文件
Log::channel('logRegisterUser')->info($logContent);

// 存入数据库
$this->logModel->create([
    'description_log' => $logContent,
    'relation' => '',
]);

内容的提问来源于stack exchange,提问作者user20338917

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 13:01:55