OiO.lk Blog PHP How to set validation conditions and default fields in redbeanphp in RESTful API mode?
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



You need to sign in to view this answers

Exit mobile version