扩展用户插件

markdown
阅读 37 收藏 0 点赞 0 评论 0

Guide.md
# Extending the User Plugin

1 |  Make a plugin
`php artisan create:plugin PaulAllen.profile`

2 |  In the udates folder, edit the database migration file. In this example it's `create_profiles_table.php`. We'll use this to add a column to the users table. I'm keeping this simple but in production you may want to make sure the users table actually exists. Here we are just adding a "bio" column.
```
<?php namespace PaulAllen\Profile\Updates;

use Schema;
use October\Rain\Database\Schema\Blueprint;
use October\Rain\Database\Updates\Migration;

class CreateProfilesTable extends Migration
{
    public function up()
    {
        Schema::table('users', function(Blueprint $table) {
            $table->text('bio')->nullable();
        });
    }

    public function down()
    {
        Schema::table('users', function(Blueprint $table) {
            $table->dropColumn('bio');
        });
    }
}
```

3 | Add the fields we want to the user controller. It's important to use `RainLab\User\Controllers\Users` in our `Plugin.php` in the newly created plugin.

We can add fields and tabs by using the `extendFormFields` method from the user controller. We'll add that to our `boot` method.
```
<?php namespace PaulAllen\Profile;

use System\Classes\PluginBase;
use RainLab\User\Controllers\Users as UsersController;

class Plugin extends PluginBase
{
    public function registerComponents()
    {
    }

    public function registerSettings()
    {
    }

    public function boot()
    {
        UsersController::extendFormFields(function($form, $model, $context){
            $form->addTabFields([
                'bio' => [
                    'label' => 'Bio',
                    'tab'   => 'Profile',
                    'type'  => 'textarea'
                ]
            ]);
        });
    }
}
```
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号