October 26, 2024
Chicago 12, Melborne City, USA
PHP

How to set validation conditions and default fields in redbeanphp in RESTful API mode?


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

My src directory structure



You need to sign in to view this answers

Leave feedback about this

  • Quality
  • Price
  • Service

PROS

+
Add Field

CONS

+
Add Field
Choose Image
Choose Video