【问题标题】:Change voyager model更改航海者模型
【发布时间】:2017-06-04 19:40:59
【问题描述】:

我想在 Voyager 的 User 类上添加一些修改器,但我不会更改 vendor 文件夹中的任何内容,并且 Voyages 在包中使用 User 模型。我有可能以某种方式改变这一点吗?

【问题讨论】:

  • 永远不要触摸vendor,因为一旦你触摸Composer等,你的更改将不会被反映。此外,vendor 应始终为 .gitignore,因此您将无法将您的工作保存到 repo 中。
  • 更新了我的答案

标签: laravel voyager


【解决方案1】:

足够简单。修改默认 Laravel User 模型为

<?php

namespace App\Models;

use TCG\Voyager\Models\User as VoyagerUser;

class User extends VoyagerUser {
    // add custom mutators and other code in here
}

然后您可以按照@aimme 所说的那样更新app/config/voyager.php 并拥有它

'user' => [
    'add_default_role_on_register' => true,
    'default_role'                 => 'user',
    'admin_permission'             => 'browse_admin',
    'namespace'                    => App\User::class,
],

通过这种方式,您可以将 Voyager 用户模型的强大功能引入您自己的模型中,而不会涉及黑客攻击。

【讨论】:

  • 我还没有扩展角色和权限,但我不明白为什么它不起作用。我扩展了VoyagerBreadController 以获得一些自定义功能。不过,在扩展 Voyager 的角色和权限之前,您可能希望在即将发布的 v1.0 版本中查看 Voyager BREAD Policies,因为它们可能会帮助您实现相同的效果。
  • 有趣。有什么消息可以告诉我 v1.0 的发布日期吗?
  • 到目前为止,我们所拥有的只是来自核心开发人员的“很快”。
  • 请注意,app/config/voyager.phpuser 配置中的 namespace 选项现已弃用,取而代之的是 app/config/auth.php 中的默认用户模型条目
【解决方案2】:

在大多数情况下,扩展供应商包都可以正常工作。

更新 voyager 配置

config/voyager.php

像这样改变用户数组。我在这里只更改了namespace,来自 voyager 用户 tp App\User。

'user' => [
    'add_default_role_on_register' => true,
    'default_role'                 => 'user',
    'admin_permission'             => 'browse_admin',
    'namespace'                    => App\User::class,
],

但要带来额外的变化,您可以尝试以下方式。

将整个 voyager 包加载为本地包。

警告:执行此操作后,软件包将不再是供应商 包裹。

这样做

1 - 在项目的根目录上创建一个包文件夹。

2 - 将 tcg/voyager repo 克隆到 packages 文件夹或将 vendor tcg 文件夹剪切粘贴到您创建的 packages 文件夹中。所以你将拥有这样的目录 yourproject/packages/tcg/voyager 。如果您在 composer.json 中需要 tcg/voyager,请将其从那里删除。

3 - 更新项目根目录上的 composer.json 文件。添加TCG\\Voyager 自动加载。参见下面的示例,在 psr-4 中添加了这一行。

"autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/",
            "TCG\\Voyager\\": "packages/tcg/voyager/src/"
        }
    },

4 - 运行作曲家更新

在对包进行更改后,有时您可能需要composer dump-autoload

【讨论】:

    猜你喜欢
    • 2021-08-07
    • 2020-04-26
    • 2021-06-25
    • 2020-06-04
    • 2019-08-12
    • 1970-01-01
    • 2021-10-08
    • 2017-08-29
    • 2014-04-21
    相关资源
    最近更新 更多