标签: redbean

在PHP中的对象上使用json_encode(无论范围如何)

我正在尝试输出对象列表作为json,并想知道是否有一种方法可以使对象可用json_encode?我得到的代码看起来像

$related = $user->getRelatedUsers();
echo json_encode($related);
Run Code Online (Sandbox Code Playgroud)

现在,我只是遍历用户数组并单独将它们导出到数组中,json_encode以便为我变成可用的json.我已经尝试使对象可迭代,但json_encode似乎只是跳过它们.

编辑:这是var_dump();

php > var_dump($a);
object(RedBean_OODBBean)#14 (2) {
  ["properties":"RedBean_OODBBean":private]=>
  array(11) {
    ["id"]=>
    string(5) "17972"
    ["pk_UniversalID"]=>
    string(5) "18830"
    ["UniversalIdentity"]=>
    string(1) "1"
    ["UniversalUserName"]=>
    string(9) "showforce"
    ["UniversalPassword"]=>
    string(32) ""
    ["UniversalDomain"]=>
    string(1) "0"
    ["UniversalCrunchBase"]=>
    string(1) "0"
    ["isApproved"]=>
    string(1) "0"
    ["accountHash"]=>
    string(32) ""
    ["CurrentEvent"]=>
    string(4) "1204"
    ["userType"]=>
    string(7) "company"
  }
  ["__info":"RedBean_OODBBean":private]=>
  array(4) {
    ["type"]=>
    string(4) "user"
    ["sys"]=>
    array(1) {
      ["idfield"]=>
      string(2) "id"
    }
    ["tainted"]=>
    bool(false)
    ["model"]=>
    object(Model_User)#16 (1) {
      ["bean":protected]=>
      *RECURSION*
    } …
Run Code Online (Sandbox Code Playgroud)

php json scope redbean

72
推荐指数
4
解决办法
11万
查看次数

RedBean ORM性能

我想知道,Redbean ORM可以用于社交网络应用程序等面向性能的场景,即使多个用户同时提取数千个数据,它是否也很稳定?另外我想知道Redbean是否会消耗更多的内存空间?

谁能提供Doctrine-Propel-Redbean的比较研究?

php orm propel doctrine redbean

22
推荐指数
4
解决办法
1万
查看次数

从RedBean 3.5升级到RedBean 4的过程

我目前正在使用RedBean 3.5版.我想我想转到最新版本的RedBean,版本4.

我没有找到有关升级过程的文档,除了表明它不简单.

我的问题是:

  • 我的RedBean 3.5数据库模式是兼容4,还是必须将所有表迁移到某种新格式?
  • 我的任何RedBean 3.5代码是否与版本4兼容,或者我是否需要重写使用RedBean 3.5的代码?

php orm redbean

15
推荐指数
1
解决办法
221
查看次数

我可以使用RedBean PHP ORM导出Sqlite数据库并导入MySQL吗?

我有一个简单的Web应用程序,我一直在使用redbeanPHP 构建,它有一个非常简单的结构,有三种bean类型:

地区建筑人

所有关系都是独一无二的1:很多.所以,a Person只属于1 Building,Building属于1 Area.

Area
  BuildingList
    PersonList
Run Code Online (Sandbox Code Playgroud)

目前,我一直在开发它Sqlite3以便于开发,但我想将数据移动到mySQL.我已经添加了很多数据.

有没有一种简单的方法可以使用RedBean将所有bean导出到新的MySql数据库?

我知道我可以搜索sqlite- > MySQL/ MariaDB转换器,但我也可能希望能够反向使用它来使迁移站点变得非常容易移动/备份/更改DB.

我在下面尝试过的:

R::setup('sqlite:/' . __DIR__ . '/data/database.db'); 
R::addDatabase('mysql', $MySqlConn );

$old_datas = R::findAll( 'area' );
R::selectDatabase( 'mysql' );

foreach ($old_datas as $bean) {
    $new_area = R::dispense('area');
    $new_area->importFrom( $bean );
    $id = R::store( $new_area );
    var_dump( $new_area ); // shows new data
}

var_dump( R::findAll( 'area' ) ); // returns empty …
Run Code Online (Sandbox Code Playgroud)

php mysql sqlite redbean

10
推荐指数
1
解决办法
432
查看次数

PHP Red Bean ORM性能问题

我在php中创建一个WebService,我的网站将用它来查询Ajax调用的信息.

起初我只是使用内置的php mysql lib以标准方式完成它,并手动编写所有查询并在MySQL Workbench中创建整个数据模型等等.这非常耗时,如果我不得不改变数据模型,之后一切都会变得非常复杂,所以我决定寻找一个PHP ORM,我发现RedBean在我看来是纯粹的魔法和快乐.

除了我在性能问题上非常困难.我的网站是一个网站,供用户创建自己的电视连续剧列表.我查询一个系列的外部源并将其插入我的数据库,如果它还没有,否则我从我自己的数据库ofc中获取它.

我从这个外部来源回来的xml列出了系列,季节,剧集等等,我把这一切都存储起来.

function InsertSerie($serie) {
    $serieBean = $this->CreateSerieBean($serie->Series);
    $genreBeans = $this->CreateGenreBeans($serie->Series->Genre);
    $actorBeans = $this->CreateActorBeans($serie->Series->Actors);
    $episodeBeans = array();
    foreach ($serie->Episode as $episode) {
        $episodeBean = $this->CreateEpisodeBean($episode);
        $seasonBean = $this->CreateSeasonBean($episode);
        $writerBeans = $this->CreateWriterBeans($episode->Writer);
        $guestBeans = $this->CreateActorBeans($episode->GuestStars);
        $directorBeans = $this->CreateDirectorBeans($episode->Director);
        R::associate($episodeBean, $seasonBean);
        foreach ($writerBeans as $bean) {
            R::associate($episodeBean, $bean);
        }
        foreach ($guestBeans as $bean) {
            R::associate($episodeBean, $bean);
        }
        foreach ($directorBeans as $bean) {
            R::associate($episodeBean, $bean);
        }
        $episodeBeans[] …
Run Code Online (Sandbox Code Playgroud)

php performance orm redbean

8
推荐指数
1
解决办法
1691
查看次数

Redbean O/RM将"date"存储为varchar(255)?

从这段代码:

$toolbox = RedBean_Setup::kickstartDev("mysql:*****************");

$r = $toolbox->getRedBean();

$test = $r->dispense("test");
$test->nom = 'Test #1';
$test->date = '2010-07-08';
$test->date_deux = '08/07/2010';
$test->num = 5;

$id = $r->store( $test ); 
Run Code Online (Sandbox Code Playgroud)

我得到这个SQL:

CREATE TABLE IF NOT EXISTS `test` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `nom` varchar(255) collate utf8_unicode_ci default NULL,
  `date` varchar(255) collate utf8_unicode_ci default NULL,
  `num` tinyint(3) unsigned default NULL,
  `date_deux` varchar(255) collate utf8_unicode_ci default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=6 ;

--
-- Dumping data for …
Run Code Online (Sandbox Code Playgroud)

php mysql orm redbean

7
推荐指数
1
解决办法
2万
查看次数

RedBean是否需要"id"主键?

如果使用RedBean ORM,是否需要向数据库中的每个表添加名为"id"的主键?

在我的数据库中,我有一些表具有2或3个字段的主键对,或者主键与"id"之外的其他名称(是的,我可以将名称更改为"id",但它不会真正反映出现实,因为他们不是ID)

例:

table1 - 存储帖子:

  id           INTEGER      PRIMARY KEY AUTOINCREMENT,
  name         TEXT,
  title        TEXT,
  content      TEXT,
Run Code Online (Sandbox Code Playgroud)

table2 - 为帖子存储元数据:

  post         INTEGER      DEFAULT 0,     # <- references "id" from "posts"
  name         TEXT,
  value        TEXT,
  PRIMARY KEY(name, post),
  CONSTRAINT posts_meta FOREIGN KEY(post)
    REFERENCES posts(id) ON DELETE CASCADE ON UPDATE RESTRICT
Run Code Online (Sandbox Code Playgroud)

RedBean会使用这种数据库结构吗?

php database orm redbean

7
推荐指数
2
解决办法
4658
查看次数

仅检索RedBean中的某些字段

我正在使用RedBean ORM编写一些代码,我想知道我是否可以加载/重新启动db表中的某些字段.我知道有一个加载方法,但它将整个表作为bean.我希望只获得一些领域?

嘿,当我写它时,我开始想知道它是否不符合RedBean模式(或ORM),因为只获取一些值将创建无效(只有一些值)对象/ bean?我想做一些延迟加载的值...也许有一些其他的ORM(像RedBean一样简单:)来实现这个目标吗?

php mysql orm redbean

6
推荐指数
1
解决办法
2084
查看次数

帖子和评论的数据库设计

如果一个帖子有很多评论,评论与帖子基本相同(例如他们有标题,图片和音频等),我应该创建两个表还是只有一个?

例如,如果我只使用一个表,我可以有一个parent_id列,所以如果它不是对任何内容的回复,那么它将为null,否则,它将具有父帖子的id.另一方面,我可以创建一个post表和一个注释表.评论也可以回复其他评论,因此这可能会让人感到困惑.

  *Post*
    id
    title
    content
    image
    audio
    parent_id
Run Code Online (Sandbox Code Playgroud)

要么,

*Post*                        *Comments*
id                             id
title                          title
content                        content
image                          author_id 
audio                          post_id
author_id                      image
                               audio
Run Code Online (Sandbox Code Playgroud)

第二个选项允许的是创建索引.事实上,我甚至不需要添加author_id或post_id如果我从一开始就使用索引吗?

你对这个SO有什么想法?哪个会更有效率?我想为此使用redbeanphp.

php mysql redbean

6
推荐指数
1
解决办法
1442
查看次数

如何批量插入RedBeanPhp?

我希望有一个关于如何在readbeanphp中批量插入新"bean"而不循环遍历每个实例的示例.

它显示了一个创建和保存bean的示例:http://redbeanphp.com/manual/create_a_bean

它提到了storeAll($ beans)方法,但我不确定我是如何设置格式化$ beans中的数据.

我已经尝试谷歌搜索,无法找到任何与批量插入相关的内容.也许我已经搜索了错误的条款.

我是这个ORM的新手,任何帮助都会感激,谢谢!

php orm redbean

6
推荐指数
1
解决办法
4929
查看次数

标签 统计

php ×10

redbean ×10

orm ×7

mysql ×4

database ×1

doctrine ×1

json ×1

performance ×1

propel ×1

scope ×1

sqlite ×1