是否可以在用户表中添加一个 slug,如果可以,那么怎么做?
我尝试像往常一样做,但它不适用于表用户
class User extends Model{
use \October\Rain\Database\Traits\Sluggable;
protected $slugs = ['slug' => 'name'];
}
我在用户表中添加了 slug 字段,但它仍然为空
先感谢您
是否可以在用户表中添加一个 slug,如果可以,那么怎么做?
我尝试像往常一样做,但它不适用于表用户
class User extends Model{
use \October\Rain\Database\Traits\Sluggable;
protected $slugs = ['slug' => 'name'];
}
我在用户表中添加了 slug 字段,但它仍然为空
先感谢您
它会有点长,但没问题我们会解决它:)
有两种方法可以做到这一点。
user
表并开始使用它,我们就完成了。UserExtension
[使用新插件很明显]并将oneToOne
用户表的动态关系添加到该表中,然后使用关系将所有新数据保存到该表中。现在我们应该去,
1st
好像你只想要一个field
,所以
backend forms
以显示该字段[保存数据将自动工作]创建更新脚本 [Class name => AddSlugToUserTable]文件名将在蛇形大小写 =>
add_slug_to_user_table.php
中。将此文件添加到插件的updates
目录中。
<?php namespace HardikSatasiya\Plugin\Updates;
use Schema;
use October\Rain\Database\Updates\Migration;
class AddSlugToUserTable extends Migration
{
public function up()
{
Schema::table('users', function($table)
{
// make it nullable as we are adding it and existing records may not have any data for it so
$table->string('slug')->nullable()->index();
});
// or even you can add converted data to slug field
// from existing user name
}
public function down()
{
// don't want to mess with data so better be empty
}
}
现在在文件中添加有关此文件的详细信息
version.yaml
。如果它不在updates
文件夹内,则创建此文件。[此文件对间距非常敏感,因此请为制表符使用 2 个空格并避免额外的空格。]
1.0.1:
- Initialize plugin.
1.0.2:
- Adding Slug Field to User Table.
- add_slug_to_user_table.php
下一步将添加表单字段以
Backend Form
将此代码添加到您的plugin.php => boot
方法中。
class Plugin extends PluginBase
{
[...]
public function boot()
{
// Extend all backend form usage
\Event::listen('backend.form.extendFields', function($widget) {
// Only for the User controller
if (!$widget->getController() instanceof \RainLab\User\Controllers\Users) {
return;
}
// Only for the User model
if (!$widget->model instanceof \RainLab\User\Models\User) {
return;
}
// Add an extra birthday field
$widget->addFields([
'slug' => [
'label' => 'Slug',
'comment' => 'Add Slug To User',
'preset' => [
'field' => 'name',
'type' => 'slug'
]
]
]);
});
}
}
现在
Logout
[如果你已经登录]从后端Login
再次生效,让所有这些东西生效。然后打开User From.
您将看到闪亮的新字段,该字段可以从[您可以从预设配置中更改]slug
自动填充name
如果您有任何问题或疑问,请发表评论。