我是 Laravel 和 OctoberCMS 的新手,两者都有很多文档,但是因为我对两者都不太了解,所以我非常感谢一些帮助。试图同时理解两者也很令人困惑,尤其是关于 laravel 的文档比 10 月要多得多。
目前,我希望扩展一个插件(链接到他们的扩展插件文档)。我需要使用 rainlab 用户插件(链接到他们的 Git)中的会话(用户名或电子邮件)并将其插入另一个插件。
我正在升级另一个插件,该插件目前依赖于用户通过表单输入他们的姓名,并在登录后将其替换为他们的用户名或电子邮件地址。
我的布局包含用户插件会话:
{% component 'session' %}
用户插件会话在我的其余页面上运行良好,但我之前尝试将它与插件一起使用时出现“未找到值”错误。
我知道我需要链接插件或创建一个新插件,然后从用户数据库中检索用户名(或电子邮件)并将其插入另一个表中,只是不知道如何做到这一点。更糟糕的是,我也没有使用 MVC 的经验!
将此函数(来自我找到的示例)添加到第二个插件的 Plugin.php 页面:
插件.php
public function boot()
{
Event::listen('rainlab.user.register', function($user) {
// Code to register $user->email to mailing list
});
}
但我收到“未定义”错误。
我还尝试添加一个 Routes.php 文件,因为我认为中间件可能存在问题。
路由.php
Route::get('/test', function () {
dd(
Auth::getUser(),
BackendAuth::getUser()
);
})->middleware('web');
收到此错误:
“调用未定义的方法 RainLab\User\Facades\Auth::getUser()”
我已经把头撞在墙上一个星期了,任何提示或解释都会受到很大的欢迎。如果您需要任何其他代码,请告诉我。我没有添加更多代码,因为我知道这些代码不起作用(绕圈子,这会有点不稳定而且没有多大用处),我不想在这个页面上发送垃圾代码。我已经展示了上面的部分来尝试解释一些以前的思考过程。此外,这是我的项目的开始,与 OctoberCMS 和用户插件 Gits 中提供给您的通用代码相比,代码并没有太大变化。
我相信这里的解释和一些帮助会让很多人受益,我可以看到我不是唯一一个有问题的人,部分原因是最新版本的 laravel 的变化。
任何想法和解释将不胜感激。
更新:
为了更清楚我需要我的会话出现在哪里,我已经包含了下面的代码。$name
需要替换为新变量,例如电子邮件或用户名(来自会话)。
组件\Chat.php
$name = 'anonymous';
if ($n = Input::get('name')) {
$name = strip_tags($n);
}
$message = new Message(['text'=>$text, 'user_id'=>$user_id, 'name'=>$name]);
$message->save();
return $this->getMessagesOutput($message->id, [$message]);
}