How to interpret vin/vout on a Bitcoin transaction? - api

I used nownodes api to get this response on a transaction:
(
[txid] => 38ac1348219f8aa9349f497bfa6f8d05f775cafbbd26354867d22ca84f15e1e1
[version] => 2
[vin] => Array
(
[0] => stdClass Object
(
[txid] => 38cff250be850140644a1abf022b22f3e59cab15c6091706c3f73218a4d72050
[vout] => 1
[sequence] => 4294967295
[n] => 0
[addresses] => Array
(
[0] => 1EJtMFThodiQ1j26xy1kugFck9325C38CQ
)
[isAddress] => 1
[value] => 158316
[hex] => 4830450221009548f997389fd9881dfed78fe25fcce77f5b96d1545da91dfa13f56db3c02f6e02207fe239ac7916681edc36afd6a9a569981cd12c2c6801616bc15794be5c024431012102afe2e887e3ff56edcebe6b1aa6bf48f4a5a7f02cfc8d743e778896df2054adee
)
)
[vout] => Array
(
[0] => stdClass Object
(
[value] => 7000
[n] => 0
[hex] => a9144a09be6e2917ef00e5d72bc38035db5c5a5ed8ec87
[addresses] => Array
(
[0] => 38SVbkkFE8qcJuGyTJ9fY2cbGS3xknEfYr
)
[isAddress] => 1
)
[1] => stdClass Object
(
[value] => 146856
[n] => 1
[hex] => 76a91491fb9214e6ad9b3ea19c1fd7d3a646e12f804d2688ac
[addresses] => Array
(
[0] => 1EJtMFThodiQ1j26xy1kugFck9325C38CQ
)
[isAddress] => 1
)
)
[blockHash] => 000000000000000000050bfb2a645a5eb7ac882aeb1782bce37ef6a2652c383b
[blockHeight] => 743696
[confirmations] => 8
[blockTime] => 1657005608
[value] => 153856
[valueIn] => 158316
[fees] => 4460
[hex] => 02000000015020d7a41832f7c3061709c615ab9ce5f3222b02bf1a4a64400185be50f2cf38010000006b4830450221009548f997389fd9881dfed78fe25fcce77f5b96d1545da91dfa13f56db3c02f6e02207fe239ac7916681edc36afd6a9a569981cd12c2c6801616bc15794be5c024431012102afe2e887e3ff56edcebe6b1aa6bf48f4a5a7f02cfc8d743e778896df2054adeeffffffff02581b00000000000017a9144a09be6e2917ef00e5d72bc38035db5c5a5ed8ec87a83d0200000000001976a91491fb9214e6ad9b3ea19c1fd7d3a646e12f804d2688ac00000000
)
The transaction was for: 0.0001146 BTC
And the fee was: 0.0000446
Totalling: 0.0001592
However, based on teh result from Nownodes, how can I see what the transaction total was? I can easily see the fee under "Fees". But how do I calculate the actually amount that came in or went out for this transaction?
Thanks!

valueIn = vout[0][value] + vout[1][value] + [fees]
valueIn = 158316
Is that what you have been looking for?

Related

PayPal Orders API payment to a third party payee

I want to facilitate sending money to a merchant's PayPal account. I've made an additional Business Account in the PayPal Sandbox. I've made an order call with this account as a payee. But when I get the order (after approval from the payer) then the payee is still my actor account. Do I need some special configuration in the sandbox? And in production does the intended payee need to give me special permissions?
Array
(
[intent] => AUTHORIZE
[application_context] => Array
(
[return_url] => http://example.com/cart/PP_Payment.php?success=true
[cancel_url] => http://example.com/cart/PP_Payment.php?success=false
[brand_name] => Company X
)
[payee] => Array
(
[email_address] => sb-u4hosest4#business.example.com
)
[inovoice_id] => 1-GD2U-70E7-4Y
[items] => Array
(
[0] => Array
(
[quantity] => 1
[name] => Rabenhorst Klostergarten BIO Mini
[unit_amount] => Array
(
[currency_code] => EUR
[value] => 1.04
)
[sku] => 97899
)
[1] => Array
(
[quantity] => 1
[name] => Lupinen Filet
[unit_amount] => Array
(
[currency_code] => EUR
[value] => 3.87
)
[sku] => 66911
)
[2] => Array
(
[quantity] => 1
[name] => Kühltasche/-akku
[unit_amount] => Array
(
[currency_code] => EUR
[value] => 6
)
[sku] => P002
)
)
[purchase_units] => Array
(
[0] => Array
(
[amount] => Array
(
[currency_code] => EUR
[value] => 15.86
[breakdown] => Array
(
[item_total] => Array
(
[currency_code] => EUR
[value] => 10.91
)
[shipping] => Array
(
[currency_code] => EUR
[value] => 4.95
)
)
)
)
)
)
Result: ##########
Array
(
[id] => 5KPxxxx
[links] => Array
(
[0] => Array
(
[href] => https://api.sandbox.paypal.com/v2/checkout/orders/5KPxxxx
[rel] => self
[method] => GET
)
[1] => Array
(
[href] => https://www.sandbox.paypal.com/checkoutnow?token=5KPxxxx
[rel] => approve
[method] => GET
)
[2] => Array
(
[href] => https://api.sandbox.paypal.com/v2/checkout/orders/5KPxxxx
[rel] => update
[method] => PATCH
)
[3] => Array
(
[href] => https://api.sandbox.paypal.com/v2/checkout/orders/5KPxxxx/authorize
[rel] => authorize
[method] => POST
)
)
[status] => CREATED
)
but when I get the order then the payee is me and not the selected third party
Array
(
[id] => 5KPxxxx
[intent] => AUTHORIZE
[purchase_units] => Array
(
[0] => Array
(
[reference_id] => default
[amount] => Array
(
[currency_code] => EUR
[value] => 15.86
[breakdown] => Array
(
[item_total] => Array
(
[currency_code] => EUR
[value] => 10.91
)
[shipping] => Array
(
[currency_code] => EUR
[value] => 4.95
)
)
)
[payee] => Array
(
[email_address] => mike#www.org
[merchant_id] => FXXX
[display_data] => Array
(
[brand_name] => Company X
)
)
[shipping] => Array
(
[name] => Array
(
[full_name] => test buyer
)
[address] => Array
(
[address_line_1] => ESpachstr. 1
[admin_area_2] => Freiburg
[admin_area_1] => Empty
[postal_code] => 79111
[country_code] => DE
)
)
)
)
[payer] => Array
(
[name] => Array
(
[given_name] => test
[surname] => buyer
)
[email_address] => mt-buyer#w3xxx.org
[payer_id] => 4xxx
[address] => Array
(
[country_code] => DE
)
)
[create_time] => 2020-03-22T09:32:48Z
[links] => Array
(
[0] => Array
(
[href] => https://api.sandbox.paypal.com/v2/checkout/orders/5KPxxxx
[rel] => self
[method] => GET
)
[1] => Array
(
[href] => https://api.sandbox.paypal.com/v2/checkout/orders/5KPxxxx/authorize
[rel] => authorize
[method] => POST
)
)
[status] => APPROVED
)
[payee] => Array
(
[email_address] => sb-u4hosest4#business.example.com
)
This payee is being ignored because it is not in the purchase_units object.
See the example in the documentation.
While you can for sure do intent:CAPTURE, another consideration is that intent:AUTHORIZE (and later capture) might not be supported without permissions.

How to simplify my result in Cakephp 3

My code is:
$costSheetQuery = $this->CostSheets->find('all')->where(['id IN' => $criteria]);;
$costSheetData = $costSheetQuery->all();
I print the array $costSheetData and it gives me the following relust:
Cake\ORM\ResultSet Object
(
[items] => Array
(
[0] => App\Model\Entity\CostSheet Object
(
[id] => 5
[key_value] => {"sample_date":"10-03-2018","mh_sc":"mh-sc","buyer":"buyer","season":"season","style":"styel","style_detail":"Style Details","sample_img":[[""]],"fab_category":[["FABRIC CATEGORY","FABRIC CATEGORY","FABRIC CATEGORY","FABRIC CATEGORY","FABRIC CATEGORY","FABRIC CATEGORY"]],"patt":[["PATT","PATT","PATT","PATT","PATT","PATT"]],"size":[["SIZE","SIZE","SIZE","SIZE","SIZE","SIZE"]],"ship_date":[[{"year":"2018"},{"month":"01"},{"day":"01"}]],"piece":[["10","20","30","40","50","60"]],"fabric_usage":[["USAGE"]],"fabric_yds":[["yds"]],"fabric_body":[["Body","Body","Body","Body","Body","Body"]],"cm":[["embrotery"]],"cm_value":[[" 10 ","12.00","","15","",""]],"trims":[["thread"]],"trims_value":[["10","","10","20","",""]]}
[created] => Cake\I18n\FrozenTime Object
(
[time] => 2018-03-10T16:47:52+00:00
[timezone] => UTC
[fixedNowTime] =>
)
[modified] => Cake\I18n\FrozenTime Object
(
[time] => 2018-03-10T16:47:52+00:00
[timezone] => UTC
[fixedNowTime] =>
)
[[new]] =>
[[accessible]] => Array
(
[key_value] => 1
[created] => 1
[modified] => 1
)
[[dirty]] => Array
(
)
[[original]] => Array
(
)
[[virtual]] => Array
(
)
[[errors]] => Array
(
)
[[invalid]] => Array
(
)
[[repository]] => CostSheets
)
)
)
Whats hell is going on. I just start hating cakephp. My additional bullshit in my array? I also try to separate as : $items->costSheetData as item is an object of $costSheetData. But it gives me an arrow. Any idea?

When submitting a place order button to order page that time generate this message

When submitting a place order button to order page that time generate this message.
How to resolve this error. Please help any one.
Order Object ( [id_address_delivery] => 88641 [id_address_invoice] => 88641 [id_shop_group] => 5 [id_shop] => 1 [id_cart] => 31973 [id_currency] => 1 [id_lang] => 1 [id_customer] => 27026 [id_carrier] => 73 [current_state] => [secure_key] => 353b960ec14efca0bf8145f79908794a [payment] => Authorize.net AIM (Advanced Integration Method) [module] => authorizeaim [conversion_rate] => 1.000000 [recyclable] => 0 [gift] => 0 [gift_message] => [mobile_theme] => 0 [shipping_number] => [total_discounts] => 0 [total_discounts_tax_incl] => 0 [total_discounts_tax_excl] => 0 [total_paid] => 6.5 [total_paid_tax_incl] => 6.5 [total_paid_tax_excl] => 6.5 [total_paid_real] => 0 [total_products] => 6.5 [total_products_wt] => 6.5 [total_shipping] => 0 [total_shipping_tax_incl] => 0 [total_shipping_tax_excl] => 0 [carrier_tax_rate] => 0 [hazmat_fees] => 0 [poison_fees] => 0 [refrigerated_fees] => 0 [ponumber] => [total_wrapping] => 0 [total_wrapping_tax_incl] => 0 [total_wrapping_tax_excl] => 0 [invoice_number] => [delivery_number] => [invoice_date] => 0000-00-00 00:00:00 [delivery_date] => 0000-00-00 00:00:00 [valid] => [date_add] => [date_upd] => [reference] => JYADOFQPY [webserviceParameters:protected] => Array ( [objectMethods] => Array ( [add] => addWs ) [objectNodeName] => order [objectsNodeName] => orders [fields] => Array ( [id_address_delivery] => Array ( [xlink_resource] => addresses ) [id_address_invoice] => Array ( [xlink_resource] => addresses ) [id_cart] => Array ( [xlink_resource] => carts ) [id_currency] => Array ( [xlink_resource] => currencies ) [id_lang] => Array ( [xlink_resource] => languages ) [id_customer] => Array ( [xlink_resource] => customers ) [id_carrier] => Array ( [xlink_resource] => carriers ) [current_state] => Array ( [xlink_resource] => order_states ) [module] => Array ( [required] => 1 ) [invoice_number] => Array ( ) [invoice_date] => Array ( ) [delivery_number] => Array ( ) [delivery_date] => Array ( ) [valid] => Array ( ) [date_add] => Array ( ) [date_upd] => Array ( ) ) [associations] => Array ( [order_rows] => Array ( [resource] => order_row [setter] => [virtual_entity] => 1 [fields] => Array ( [id] => Array ( ) [product_id] => Array ( [required] => 1 ) [product_attribute_id] => Array ( [required] => 1 ) [product_quantity] => Array ( [required] => 1 ) [product_name] => Array ( [setter] => ) [product_price] => Array ( [setter] => ) [unit_price_tax_incl] => Array ( [setter] => ) [unit_price_tax_excl] => Array ( [setter] => ) ) ) ) ) [_taxCalculationMethod:protected] => 1 [id] => [id_shop_list] => [get_shop_from_context:protected] => 1 [table:protected] => orders [identifier:protected] => id_order [fieldsRequired:protected] => Array ( [0] => id_address_delivery [1] => id_address_invoice [2] => id_cart [3] => id_currency [4] => id_lang [5] => id_customer [6] => id_carrier [7] => payment [8] => module [9] => total_paid [10] => total_paid_real [11] => total_products [12] => total_products_wt [13] => conversion_rate ) [fieldsSize:protected] => Array ( ) [fieldsValidate:protected] => Array ( [id_address_delivery] => isUnsignedId [id_address_invoice] => isUnsignedId [id_cart] => isUnsignedId [id_currency] => isUnsignedId [id_shop_group] => isUnsignedId [id_shop] => isUnsignedId [id_lang] => isUnsignedId [id_customer] => isUnsignedId [id_carrier] => isUnsignedId [current_state] => isUnsignedId [secure_key] => isMd5 [payment] => isGenericName [module] => isModuleName [recyclable] => isBool [gift] => isBool [gift_message] => isMessage [mobile_theme] => isBool [total_discounts] => isPrice [total_discounts_tax_incl] => isPrice [total_discounts_tax_excl] => isPrice [total_paid] => isPrice [total_paid_tax_incl] => isPrice [total_paid_tax_excl] => isPrice [total_paid_real] => isPrice [total_products] => isPrice [total_products_wt] => isPrice [total_shipping] => isPrice [total_shipping_tax_incl] => isPrice [total_shipping_tax_excl] => isPrice [carrier_tax_rate] => isFloat [hazmat_fees] => isPrice [poison_fees] => isPrice [refrigerated_fees] => isPrice [total_wrapping] => isPrice [total_wrapping_tax_incl] => isPrice [total_wrapping_tax_excl] => isPrice [shipping_number] => isTrackingNumber [conversion_rate] => isFloat [date_add] => isDate [date_upd] => isDate ) [fieldsRequiredLang:protected] => Array ( ) [fieldsSizeLang:protected] => Array ( ) [fieldsValidateLang:protected] => Array ( ) [tables:protected] => Array ( ) [image_dir:protected] => [image_format:protected] => jpg [def:protected] => Array ( [table] => orders [primary] => id_order [fields] => Array ( [id_address_delivery] => Array ( [type] => 1 [validate] => isUnsignedId [required] => 1 ) [id_address_invoice] => Array ( [type] => 1 [validate] => isUnsignedId [required] => 1 ) [id_cart] => Array ( [type] => 1 [validate] => isUnsignedId [required] => 1 ) [id_currency] => Array ( [type] => 1 [validate] => isUnsignedId [required] => 1 ) [id_shop_group] => Array ( [type] => 1 [validate] => isUnsignedId ) [id_shop] => Array ( [type] => 1 [validate] => isUnsignedId ) [id_lang] => Array ( [type] => 1 [validate] => isUnsignedId [required] => 1 ) [id_customer] => Array ( [type] => 1 [validate] => isUnsignedId [required] => 1 ) [id_carrier] => Array ( [type] => 1 [validate] => isUnsignedId [required] => 1 ) [current_state] => Array ( [type] => 1 [validate] => isUnsignedId ) [secure_key] => Array ( [type] => 3 [validate] => isMd5 ) [payment] => Array ( [type] => 3 [validate] => isGenericName [required] => 1 ) [module] => Array ( [type] => 3 [validate] => isModuleName [required] => 1 ) [recyclable] => Array ( [type] => 2 [validate] => isBool ) [gift] => Array ( [type] => 2 [validate] => isBool ) [gift_message] => Array ( [type] => 3 [validate] => isMessage ) [mobile_theme] => Array ( [type] => 2 [validate] => isBool ) [total_discounts] => Array ( [type] => 4 [validate] => isPrice ) [total_discounts_tax_incl] => Array ( [type] => 4 [validate] => isPrice ) [total_discounts_tax_excl] => Array ( [type] => 4 [validate] => isPrice ) [total_paid] => Array ( [type] => 4 [validate] => isPrice [required] => 1 ) [total_paid_tax_incl] => Array ( [type] => 4 [validate] => isPrice ) [total_paid_tax_excl] => Array ( [type] => 4 [validate] => isPrice ) [total_paid_real] => Array ( [type] => 4 [validate] => isPrice [required] => 1 ) [total_products] => Array ( [type] => 4 [validate] => isPrice [required] => 1 ) [total_products_wt] => Array ( [type] => 4 [validate] => isPrice [required] => 1 ) [total_shipping] => Array ( [type] => 4 [validate] => isPrice ) [total_shipping_tax_incl] => Array ( [type] => 4 [validate] => isPrice ) [total_shipping_tax_excl] => Array ( [type] => 4 [validate] => isPrice ) [carrier_tax_rate] => Array ( [type] => 4 [validate] => isFloat ) [hazmat_fees] => Array ( [type] => 4 [validate] => isPrice ) [poison_fees] => Array ( [type] => 4 [validate] => isPrice ) [refrigerated_fees] => Array ( [type] => 4 [validate] => isPrice ) [ponumber] => Array ( [type] => 3 ) [total_wrapping] => Array ( [type] => 4 [validate] => isPrice ) [total_wrapping_tax_incl] => Array ( [type] => 4 [validate] => isPrice ) [total_wrapping_tax_excl] => Array ( [type] => 4 [validate] => isPrice ) [shipping_number] => Array ( [type] => 3 [validate] => isTrackingNumber ) [conversion_rate] => Array ( [type] => 4 [validate] => isFloat [required] => 1 ) [invoice_number] => Array ( [type] => 1 ) [delivery_number] => Array ( [type] => 1 ) [invoice_date] => Array ( [type] => 5 ) [delivery_date] => Array ( [type] => 5 ) [valid] => Array ( [type] => 2 ) [reference] => Array ( [type] => 3 ) [date_add] => Array ( [type] => 5 [validate] => isDate ) [date_upd] => Array ( [type] => 5 [validate] => isDate ) ) [classname] => Order ) [update_fields:protected] => [product_list] => Array ( [0] => Array ( [hazmat_fees] => 0 [poison_pack] => 0 [refrigerated_fees] => 0 [drop_shipping] => 0 [id_product_attribute] => 0 [id_product] => 21930 [cart_quantity] => 1 [id_shop] => 1 [name] => Hot/cold Protective Mitt, 17" Length [is_virtual] => 0 [description_short] =>
• For extreme hot or cold applications
• Cotton coated with aluminized silicones
• Withstands 450°F in short int
[available_now] => [available_later] => [id_category_default] => 1181 [id_supplier] => 0 [id_manufacturer] => 0 [on_sale] => 0 [ecotax] => 0.000000 [additional_shipping_cost] => 0.00 [available_for_order] => 1 [price] => 6.5 [active] => 1 [unity] => [unit_price_ratio] => 0.000000 [quantity_available] => 106 [width] => 8.000000 [height] => 8.000000 [depth] => 8.000000 [out_of_stock] => 2 [weight] => 1.000000 [date_add] => 0000-00-00 00:00:00 [date_upd] => 2016-09-01 08:00:39 [quantity] => 1 [link_rewrite] => HOTCOLD-PROTECTIVE-MITT-17-LENGTH [category] => chemical-and-heat-gloves [unique_id] => 0000021930000000000088641 [id_address_delivery] => 88641 [wholesale_price] => 4.214648 [advanced_stock_management] => 0 [supplier_reference] => [id_customization] => [customization_quantity] => [reference] => 180-50591 [ean13] => [upc] => [minimal_quantity] => 1 [stock_quantity] => 106 [price_wt] => 6.5 [total_wt] => 6.5 [total] => 6.5 [id_image] => 21930-71813 [legend] => [reduction_applies] => [quantity_discount_applies] => [allow_oosp] => 1 [features] => Array ( ) [rate] => 0 [tax_name] => [warehouse_list] => Array ( [0] => ) [in_stock] => 1 [carrier_list] => Array ( [0] => 73 ) ) ) )
This is the ggetto order, this message appears in the presence of a:
var_dump ($ order);
in any file should appear that function.

ActiveRecord result return by findAll method needs in different format

I executed following statement
$posts = Post::model()->with(array( 'category', 'member', 'profile' ))->findAll();
I printed $posts in log file. I got following result.
Array
(
[0] => Post Object
(
[_new:CActiveRecord:private] =>
[_attributes:CActiveRecord:private] => Array
(
[id] => 1
[post_text] => Sales needs to be increase by the end of this month. I don't wnat any reason behind this.
[member_id] => 2
[category_id] => 3
[published] => 0
[draft] => 1
[date_added] => 2014-04-06
)
[_related:CActiveRecord:private] => Array
(
[category] => Category Object
(
[_new:CActiveRecord:private] =>
[_attributes:CActiveRecord:private] => Array
(
[id] => 1
[category_name] => Anything
[type] => General
[date_added] => 2014-04-05
)
[_related:CActiveRecord:private] => Array
(
)
[_c:CActiveRecord:private] =>
[_pk:CActiveRecord:private] => 1
[_alias:CActiveRecord:private] => t
[_errors:CModel:private] => Array
(
)
[_validators:CModel:private] =>
[_scenario:CModel:private] => update
[_e:CComponent:private] =>
[_m:CComponent:private] =>
)
[member] => Member Object
(
[_new:CActiveRecord:private] =>
[_attributes:CActiveRecord:private] => Array
(
[id] => 1
[screen_name] => prashantb
[email] => prashantbharambe22#gmail.com
[date_added] => 2014-04-05
[first_name] => prashant
[last_name] => bharambe
)
[_related:CActiveRecord:private] => Array
(
[profile] => MemberProfile Object
(
[_new:CActiveRecord:private] =>
[_attributes:CActiveRecord:private] => Array
(
[id] => 1
[member_id] => 1
[city] => kalyan
[state] => maharashtra
[country] => india
[designation] => php developer
[date_added] => 2014-04-05
)
[_related:CActiveRecord:private] => Array
(
)
[_c:CActiveRecord:private] =>
[_pk:CActiveRecord:private] => 1
[_alias:CActiveRecord:private] => t
[_errors:CModel:private] => Array
(
)
[_validators:CModel:private] =>
[_scenario:CModel:private] => update
[_e:CComponent:private] =>
[_m:CComponent:private] =>
)
)
[_c:CActiveRecord:private] =>
[_pk:CActiveRecord:private] => 1
[_alias:CActiveRecord:private] => t
[_errors:CModel:private] => Array
(
)
[_validators:CModel:private] =>
[_scenario:CModel:private] => update
[_e:CComponent:private] =>
[_m:CComponent:private] =>
)
)
[_c:CActiveRecord:private] =>
[_pk:CActiveRecord:private] => 1
[_alias:CActiveRecord:private] => t
[_errors:CModel:private] => Array
(
)
[_validators:CModel:private] =>
[_scenario:CModel:private] => update
[_e:CComponent:private] =>
[_m:CComponent:private] =>
)
)
But I need a result in following format.
Array
(
[0] => Array
(
[id] => 1,
[post_text] => Sales needs to be increase by the end of this month. I don't wnat any reason behind this,
[member_id] => 2,
[category_id] => 3,
[published] => 0,
[draft] => 1,
[date_added] => 2014-04-06,
[category] => Array (
[id] => 1,
[category_name] => Anything,
[type] => General,
[date_added] => 2014-04-05,
),
[member] => Array (
[id] => 1,
[screen_name] => prashantb,
[email] => prashantbharambe94#gmail.com,
[date_added] => 2014-04-05,
[first_name] => prashant,
[last_name] => bharambe,
[profile] => Array(
[id] => 1
[member_id] => 1
[city] => kalyan
[state] => maharashtra
[country] => india
[designation] => php developer
[date_added] => 2014-04-05
)
)
)
)
In short I need all attributes values in one array. ( Model Attributes and its related model attributes )
I am new to yii. Please help me on this.
Yii doesn't work with arrays. Each DB record is represented by an ActiveRecord object. This way you can access your column values like this:
echo $model->post_text; // Sales needs to be increase...
echo $model->date_added; // 2014-04-06
echo $model->etc...
If you did set up relations right, you can access that data like this:
echo $model->category->category_name; // Anything
echo $model->member->screen_name; // prashantb
You have to create the array you showed manually. If you still need the data in an array, you can also access the attributes value:
print_r($model->attributes); // array( [id] => 1, [post_text] => 'Sales needs to be increase', ...)

Kohana ORM Relationships

I'm trying to get to grips with the Kohana ORM but I'm a bit stuck.
I have created category and post models, with a relationship based on category_id.
I can fetch post and category models separately, however I cannot seem to fetch them using the relationship. For example:
// Get first category
$category = ORM::factory('category', 1);
foreach ($category->posts as $post)
{
echo $post->title;
}
The above just gives me a blank screen (I know I shouldn't be outputting anything in the controller, just trying to get it working first).
print_r($category);
Gives me this:
Model_Category Object ( [_has_many:protected] => Array ( [posts] => Array ( [model] => post [foreign_key] => category_id [through] => [far_key] => post_id ) ) [_has_one:protected] => Array ( ) [_belongs_to:protected] => Array ( ) [_load_with:protected] => Array ( ) [_validate:protected] => [_rules:protected] => Array ( ) [_callbacks:protected] => Array ( ) [_filters:protected] => Array ( ) [_labels:protected] => Array ( ) [_object:protected] => Array ( [id] => 1 [title] => [description] => ) [_changed:protected] => Array ( ) [_related:protected] => Array ( ) [_loaded:protected] => [_saved:protected] => 1 [_sorting:protected] => Array ( [id] => ASC ) [_foreign_key_suffix:protected] => _id [_object_name:protected] => category [_object_plural:protected] => categories [_table_name:protected] => categories [_table_columns:protected] => Array ( [id] => Array ( [type] => int [min] => 0 [max] => 65535 [column_name] => id [column_default] => [data_type] => smallint unsigned [is_nullable] => [ordinal_position] => 1 [display] => 6 [comment] => [extra] => auto_increment [key] => PRI [privileges] => select,insert,update,references ) [title] => Array ( [type] => string [character_maximum_length] => 65535 [column_name] => title [column_default] => [data_type] => text [is_nullable] => [ordinal_position] => 2 [collation_name] => latin1_swedish_ci [comment] => [extra] => [key] => [privileges] => select,insert,update,references ) [description] => Array ( [type] => string [character_maximum_length] => 65535 [column_name] => description [column_default] => [data_type] => text [is_nullable] => [ordinal_position] => 3 [collation_name] => latin1_swedish_ci [comment] => [extra] => [key] => [privileges] => select,insert,update,references ) ) [_ignored_columns:protected] => Array ( ) [_updated_column:protected] => [_created_column:protected] => [_primary_key:protected] => id [_primary_val:protected] => name [_table_names_plural:protected] => 1 [_reload_on_wakeup:protected] => 1 [_db:protected] => Database_MySQL Object ( [_connection_id:protected] => d6ad44aa068ae69071b9614f2a4a760bf55d9307 [_identifier:protected] => [last_query] => SHOW FULL COLUMNS FROMcategories` [_instance:protected] => default [_connection:protected] => Resource id #36 [_config:protected] => Array ( [type] => mysql [connection] => Array ( [hostname] => localhost [database] => cms_test_kohana [persistent] => ) [table_prefix] => [charset] => utf8 [caching] => [profiling] => 1 ) ) [_db_applied:protected] => Array ( ) [_db_pending:protected] => Array ( ) [_db_reset:protected] => 1 [_db_builder:protected] => [_with_applied:protected] => Array ( ) [_preload_data:protected] => Array ( ) )
Can anyone help?
Any advice appreciated.
Thanks.
Posts is a relationship, not a collection. Use find_all() or find() on a relationship to return a collection of records.
foreach ($category->posts->find_all() as $post) {
echo $post->title;
}
You can also apply various other methods to the relationship to filter the returned results using orderby, where, etc...