I have a RESTful API project based on slim framework and redbeanphp ORM.
I can already implement API CRUD.
I’m having a problem now.
I cannot implement the default field settings and field validation of redbeanphp according to the redbeanphp documentation and stackoverflow posts.
https://redbeanphp.com/index.php?p=/models
RedBeanPHP: how to add timestamp, unique and default?
PHP version:8.3
slim Version:4.*
redbean Version:5.7
Repository\UserCreatorRepository.php
<?php
namespace App\Service\User\Repository;
use App\Service\User\Data\UserCreateData;
use RedBeanPHP\R;
use RedBeanPHP\SimpleModel;
final class UserCreatorRepository extends SimpleModel
{
public function update(): void
{
if (strlen($this->bean->firstName )<10)
die("Note is too short!\n");
}
public function testinsert(UserCreateData $userCreateData): array
{
// 切换到 db1 数据库
R::selectDatabase('user');
// 创建新用户
$user = R::dispense('user');
$user->username = $userCreateData->username;
$user->email = $userCreateData->email;
$user->lastName = $userCreateData->lastName;
$user->firstName = $userCreateData->firstName;
// 保存用户
$id = R::store($user);
// 获取插入的用户数据
return R::load('user', $id)->export();
}
}
or
Repository\UserCreatorRepository.php
<?php
namespace App\Service\User\Repository;
use App\Service\User\Data\UserCreateData;
use RedBeanPHP\R;
use RedBeanPHP\SimpleModel;
final class UserCreatorRepository
{
public function testinsert(UserCreateData $userCreateData): array
{
// 切换到 db1 数据库
R::selectDatabase('user');
// 创建新用户
$user = R::dispense('user');
$user->username = $userCreateData->username;
$user->email = $userCreateData->email;
$user->lastName = $userCreateData->lastName;
$user->firstName = $userCreateData->firstName;
// 保存用户
$id = R::store($user);
// 获取插入的用户数据
return R::load('user', $id)->export();
}
}
Model\User.php
<?php
namespace App\Service\User\Model;
use RedBean_SimpleModel;
class User extends RedBean_SimpleModel
{
public function dispense(): void
{
if (strlen($this->bean->firstName )<10)
die("Note is too short!\n");
}
}
My src directory structure
You need to sign in to view this answers