{"id":3851,"date":"2017-11-23T15:29:00","date_gmt":"2017-11-23T14:29:00","guid":{"rendered":"http:\/\/developer.edokumenty.eu\/?page_id=3851"},"modified":"2017-11-23T15:30:22","modified_gmt":"2017-11-23T14:30:22","slug":"custombean","status":"publish","type":"page","link":"http:\/\/developer.edokumenty.eu\/index.php\/dokumentacja-online-systemu-edokumenty\/dostep-i-przetwarzanie-danych\/klasy-obiektow-biznesowych\/custombean\/","title":{"rendered":"CustomBean"},"content":{"rendered":"<p>W\u0142asny bean do obs\u0142ugi dowolnej w\u0142asnej tabelek (np. z schemy custom). Dzi\u0119ki kt\u00f3remu u\u0142atwimy sobie zapis i odczyt danych.<\/p>\n<p>Poni\u017cszy kod jest na przyk\u0142adzie tabeli custom.my_table o nast\u0119puj\u0105cych polach:<\/p>\n<ul>\n<li>id <em>serial<\/em><\/li>\n<li>title <em>varchar(50)<\/em>,<\/li>\n<li>dscrpt <em>text<\/em><\/li>\n<\/ul>\n<p>Jak tworzy\u0107 tabele dowiesz si\u0119<a href=\"http:\/\/developer.edokumenty.eu\/index.php\/dokumentacja-online-systemu-edokumenty\/konwencja\/\"> st\u0105d(Sekcja SQL zak\u0142adka schemat Custom).<\/a><\/p>\n<div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\nrequire_once(LIB_PATH.'db\/Bean.inc');\r\n\r\n\/**\r\n\u00a0*\u00a0Description\u00a0of\u00a0CustomBean\u00a0\r\n\u00a0*\r\n\u00a0*\r\n\u00a0*\u00a0Created\u00a0by\u00a0PhpStorm.\r\n\u00a0*\u00a0@package\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0eDokumenty\r\n\u00a0*\u00a0@version\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00.0.1\r\n\u00a0*\u00a0@author\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Piotr\u00a0Ku\u017anik\u00a0&lt;pkuznik@edokumenty.eu&gt;\r\n\u00a0*\u00a0@copyright\u00a0(c)\u00a0\u00a0\u00a0\u00a0eDokumenty\u00a0Sp.\u00a0z\u00a0o.o.\r\n\u00a0*\/\r\nclass\u00a0CustomBean\u00a0extends\u00a0Bean\u00a0{\r\n\t\r\n\t\/**\r\n\t * Nazwa klucza g\u0142\u00f3wnego (PRIMARY KEY) typu serial   \r\n\t *\r\n\t\u00a0*\u00a0@var\u00a0string\r\n\t\u00a0*\/\r\n\tpublic\u00a0$pkeyName\u00a0=\u00a0'id';\r\n\t\r\n\t\/**\r\n\t * Nazwa tabeli wraz z nazw\u0105 schemy\r\n\t *\r\n\t\u00a0*\u00a0@var\u00a0string\r\n\t\u00a0*\/\r\n\tpublic\u00a0$tableName\u00a0=\u00a0'custom.my_table';\r\n\r\n\t\r\n\t\/**\r\n\t\u00a0*\u00a0CustomBean\u00a0constructor.\r\n\t\u00a0*\r\n\t\u00a0*\u00a0@param\u00a0null|integer\u00a0$id\r\n\t\u00a0*\/\r\n\tpublic\u00a0function\u00a0__construct($id\u00a0=\u00a0null)\u00a0{\r\n\t\tparent::__construct($id);\r\n\t\t\r\n\t\t$this-&gt;oldData\u00a0=\u00a0$this-&gt;data;\r\n\t}\r\n}\n<\/code><\/pre><\/div>\n<p>Teraz gdy ju\u017c posiadamy klas\u0119 mo\u017cemy za jej pomoc\u0105 szybko zapisa\u0107 dane do bazy. Nale\u017cy pami\u0119ta\u0107 \u017ce jeden obiekt odpowiada jednej encji(rekordowi) w bazie danych.<\/p>\n<div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\n\/\/Pierwszy\u00a0spos\u00f3b\r\n$bean\u00a0=\u00a0new\u00a0CustomBean();\r\n$bean-&gt;set('title',\u00a0'Nowy\u00a0bean');\r\n$bean-&gt;set('dscrpt',\u00a0'Opis');\r\n$id\u00a0=\u00a0$bean-&gt;save();\r\n\r\n\/\/Drugi\u00a0spos\u00f3b\r\n$bean\u00a0=\u00a0new\u00a0CustomBean();\r\n$array\u00a0=\u00a0[\r\n\u00a0   'title'\u00a0=&gt;\u00a0'Nowy\u00a0bean',\r\n\u00a0   'dscrpt'\u00a0=&gt;\u00a0'Opis\u00a0nowego\u00a0beana',\r\n];\r\n\r\n$bean-&gt;mergeData($array);\r\n$id\u00a0=\u00a0$bean-&gt;save();\n<\/code><\/pre><\/div>\n<p>&nbsp;<\/p>\n<p>Aby odczyta\u0107 dane z naszej tabelki wystarczy powo\u0142a\u0107 naszego CustomBena i w konstrukcie przekaza\u0107 id rekordu z bazy<\/p>\n<div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\n$id\u00a0=\u00a01;\r\n$bean\u00a0=\u00a0new\u00a0CustomBean($id);\r\necho\u00a0$bean-&gt;get('title');\n<\/code><\/pre><\/div>\n<p>Aby usun\u0105\u0107\u00a0 wpis w naszej tabelce za pomoc\u0105 naszego CustomBena wystarczy wywo\u0142a\u0107 metode delete.<\/p>\n<div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\n$id\u00a0=\u00a01;\r\n$bean\u00a0=\u00a0new\u00a0CustomBean($id);\r\n$bean-&gt;delete();\n<\/code><\/pre><\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>W\u0142asny bean do obs\u0142ugi dowolnej w\u0142asnej tabelek (np. z schemy custom). Dzi\u0119ki kt\u00f3remu u\u0142atwimy sobie zapis i odczyt danych. Poni\u017cszy kod jest na przyk\u0142adzie tabeli custom.my_table o nast\u0119puj\u0105cych polach: id serial title varchar(50), dscrpt text Jak tworzy\u0107 tabele dowiesz si\u0119 st\u0105d(Sekcja SQL zak\u0142adka schemat Custom). Teraz gdy ju\u017c posiadamy klas\u0119 mo\u017cemy za jej pomoc\u0105 szybko [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":506,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"tags":[83,863,864],"_links":{"self":[{"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/pages\/3851"}],"collection":[{"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/comments?post=3851"}],"version-history":[{"count":4,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/pages\/3851\/revisions"}],"predecessor-version":[{"id":3855,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/pages\/3851\/revisions\/3855"}],"up":[{"embeddable":true,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/pages\/506"}],"wp:attachment":[{"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/media?parent=3851"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/tags?post=3851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}