你好,我是十月CMS的新手,我刚开始使用User class我知道我在laravel创建关系非常容易。
我扩展了用户权限。
User::hasCountry()->get();
public hasCountry($query){
return $query->where('country',1);
}
所以我创建了这个关系,但我不知道如何添加到扩展用户类。
我找到了一个解决方案
public function boot()
{
User::extend(function($model) {
$model->addDynamicMethod('hasCountry', function($query) {
return $query->where('country', 1);
});
});
}
但它没有扩展或添加方法。
请帮助:)
答案 0 :(得分:0)
我阅读了建议的方法。如果我理解正确,这个想法会改变OctoberCMS安装的代码库,这是不正确的,并且当新的10月更新推送到您的应用程序时可能会造成严重破坏。
为什么不使用 backend_user 表创建新模型,然后添加所需的所有关系?
示例:
use Model;
/**
* Model
*/
class EnhancedUser extends Model
{
/**
* @var string The database table used by the model.
*/
public $table = 'backend_users';
public $hasOne = [
'Country' => 'Acme\Blog\Models\Country' //path of your country model
];
}
我认为使用OctoberCMS向您的应用添加功能的正确方法是 创建自定义插件 ,以及似乎提供最灵活性的IMO。
如果您需要让当前用户基于您的EnhancedUser模型的实例,请使用以下命令:
BackendAuth::getUser(); //Returns the authenticated user
BTW:在学习为OctoberCMS构建自定义插件时,我发现这些资源很棒:
(我的个人收藏和The Lazy Man's Way)。安装“Builder”插件,然后转到此处观看[如何]视频:
<强> 插件: 强> http://octobercms.com/plugin/rainlab-builder
<强> 视频: 强> https://vimeo.com/154415433