1 Days a go Я начинаю пытаться научиться использовать пакет laravel spat ie, но сейчас я немного запутался, как правильно добавлять дополнительные поля в spat ie pacakage . Я пытаюсь следовать документации из spat ie web, чтобы расширить модели, и вот мой код.
Схема миграции
Schema::create($tableNames['roles'], function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('color');
$table->string('description');
$table->string('guard_name');
$table->timestamps();
});
Переопределить модели
<?php
namespace App\Models;
use Spatie\Permission\Models\Role as SpatieRole;
class Role extends SpatieRole
{
public function __construct(array $attributes = [])
{
parent::__construct($attributes);
$this->mergeFillable(['color', 'description']);
}
}
Тестирование контроллера
class RoleController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$role = Role::where('name', 'Super Admin')->first();
$roleAdmin = Role::where('name', 'Admin')->first();
if (!$role) {
Role::create([
'name' => 'Super Admin',
'color' => 'Black',
'description' => 'Manage all the role and permission in the system'
]);
}
if (!$roleAdmin) {
Role::create([
'name' => 'Admin',
'color' => 'Red',
'description' => 'Manage users in the system'
]);
}
return Role::paginate(20);
}
мой код сейчас работает нормально, но я действительно хотел знать, ошибаюсь ли я или есть способ получше. в общем, я все еще новичок с php и laravel, большое спасибо ~