1. Go to this page and download the library: Download walnut/lib_dbdatamodel library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
walnut / lib_dbdatamodel example snippets
#[ModelRoot('clients')]
final class ClientDomainModel {
public function __construct(
#[Table("clients")]
#[KeyField('id'), Fields('name')]
#[OneOf(fieldName: 'address', targetName: 'addresses', sourceField: 'address_id')]
#[OneOf(fieldName: 'account', targetName: 'accounts')]
#[ListOf(fieldName: 'contacts', targetName: 'contacts')]
public array $clients,
#[Table('addresses')]
#[KeyField('id'), ParentField('id'), Fields('city', 'street')]
public array $addresses,
#[Table('client_accounts')]
#[KeyField('id'), ParentField('client_id'), Fields('account_name')]
public array $accounts,
#[Table("client_contacts")]
#[KeyField('id'), ParentField('client_id'), Fields('contact_name', 'position'), SortField('sequence')]
#[ListOf(fieldName: 'phones', targetName: 'phones')]
public array $contacts,
#[Table("client_contact_phones")]
#[KeyField('id'), ParentField('contact_id'), Fields('phone_number')]
public array $phones
) {}
}
#[ModelRoot('users')]
class UserDomainModel {
public function __construct(
#[Table("org_users")]
#[KeyField('id'), Fields('first_name', 'org_id')]
#[ListOf(fieldName: 'credentials', targetName: 'userCredentials')]
#[ListOf(fieldName: 'roles', targetName: 'roles')]
#[ListOf(fieldName: 'tags', targetName: 'tags')]
public array $users,
#[Table('org_user_roles'), KeyField('id'), ParentField('user_id'), Fields('role_id'), GroupField('code')]
public array $roles,
#[Table('org_user_credentials')]
#[KeyField('id'), ParentField('user_id'), Fields('username', 'password')]
public array $userCredentials,
#[Table("org_user_tags"), KeyField('id'), ParentField('user_id'), Fields('tag_id')]
public array $tags
) {}
}