更改航海者模型
Change voyager model
我想在 Voyager 的用户 class 上添加一些修改器,但我不会更改 vendor 文件夹内的任何内容,并且 Voyages 在包内使用用户模型。我有可能以某种方式改变它吗?
在大多数情况下,扩展供应商包工作正常。
更新航海者配置
见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 包加载为本地包。
Warning: After doing this the package would no longer be a vendor
package.
这样做
1 - 在项目的根目录下创建一个 packages 文件夹。
2 - 将 tcg/voyager 存储库克隆到 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
。
很简单。修改默认的Laravel用户模型为
<?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 用户模型的强大功能带入您自己的模型中,而无需涉及黑客技术。
我想在 Voyager 的用户 class 上添加一些修改器,但我不会更改 vendor 文件夹内的任何内容,并且 Voyages 在包内使用用户模型。我有可能以某种方式改变它吗?
在大多数情况下,扩展供应商包工作正常。
更新航海者配置
见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 包加载为本地包。
Warning: After doing this the package would no longer be a vendor package.
这样做
1 - 在项目的根目录下创建一个 packages 文件夹。
2 - 将 tcg/voyager 存储库克隆到 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
。
很简单。修改默认的Laravel用户模型为
<?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 用户模型的强大功能带入您自己的模型中,而无需涉及黑客技术。