Advertisement
Guest User

Untitled

a guest
Feb 27th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. <?php
  2.  
  3. require_once __DIR__ . '/vendor/autoload.php';
  4.  
  5. use RedBeanPHP\Facade as R;
  6.  
  7. // Start setup
  8. R::setup(getenv('REDBEAN_DSN'), getenv('REDBEAN_USERNAME'), getenv('REDBEAN_PASSWORD'));
  9.  
  10. R::exec('DROP TABLE child');
  11. R::exec('DROP TABLE parent');
  12.  
  13. $parent = R::dispense('parent');
  14. $parent->name = 'James';
  15. R::store($parent);
  16.  
  17. $child = R::dispense('child');
  18. $child->name = 'Jack';
  19. $child->parent = $parent;
  20. R::store($child);
  21.  
  22. $child = R::dispense('child');
  23. $child->name = 'Jill';
  24. $child->parent = $parent;
  25. R::store($child);
  26. // End setup
  27.  
  28. // Lets begin with a fresh instance, retrieved from the DB
  29. $retrieved = R::findOne('child', 'name = ?', ['Jack']);
  30.  
  31. // We can create a fresh instance, and inject into it without errors
  32. $imported = R::dispense('child');
  33. $imported->inject($retrieved);
  34.  
  35. // The record has no 'parent' property, as expected, because we haven't lazy-loaded it yet
  36. var_dump($retrieved->getProperties()['parent_id']); // 1
  37. var_dump($retrieved->getProperties()['parent'] ?? null); // null
  38.  
  39. // Now we lazy load it
  40. $retrieved->parent;
  41.  
  42. // And now we see it on the record
  43. var_dump($retrieved->getProperties()['parent_id']); // 1
  44. var_dump($retrieved->getProperties()['parent']); // OODBBean parent object
  45.  
  46. // But now injecting into a fresh instance no longer works
  47. $imported = R::dispense('child');
  48. $imported->inject($retrieved);
  49.  
  50. /*
  51. Warning: Illegal string offset '_type' in /vagrant/redbug/vendor/gabordemooij/redbean/RedBeanPHP/OODBBean.php on line 487
  52.  
  53. Call Stack:
  54. 0.1119 347776 1. {main}() /vagrant/redbug/test.php:0
  55. 0.1821 630128 2. RedBeanPHP\OODBBean->inject(???) /vagrant/redbug/test.php:48
  56. 0.1821 630880 3. RedBeanPHP\OODBBean->import(???, ???, ???) /vagrant/redbug/vendor/gabordemooij/redbean/RedBeanPHP/OODBBean.php:551
  57.  
  58.  
  59. Fatal error: Uncaught Error: Cannot unset string offsets in /vagrant/redbug/vendor/gabordemooij/redbean/RedBeanPHP/OODBBean.php on line 488
  60.  
  61. Error: Cannot unset string offsets in /vagrant/redbug/vendor/gabordemooij/redbean/RedBeanPHP/OODBBean.php on line 488
  62.  
  63. Call Stack:
  64. 0.1119 347776 1. {main}() /vagrant/redbug/test.php:0
  65. 0.1821 630128 2. RedBeanPHP\OODBBean->inject(???) /vagrant/redbug/test.php:48
  66. 0.1821 630880 3. RedBeanPHP\OODBBean->import(???, ???, ???) /vagrant/redbug/vendor/gabordemooij/redbean/RedBeanPHP/OODBBean.php:551
  67. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement