Hi,
you're almost doing it right.
This is your mistake:
The main difficulty with IM2 is that there are 2 types of item-object. The first one is native "Item" object and the second one is "SimpleItem" object - this can be really confusing...
It's better to use native "Item" object only if you intend to modify an item, e.g. to store a value in an item field, etc. But if you want to just view the items, you should rather use the "SimpleItem" object.
So let's get back to your problem. With this method you select an "Item" object, but access the "text" field as if it were a SimpleItem object:
If you want to access an "Item" object field value, you have to do it this way:
In the case above, you don't want to have "write" access to the item, you only want to show the value of a field. That' s why it is better to use SimpleItem object in this case. To be able to operate with SimpleItem objects, you should use the ItemMapper class. ItemMapper - is a class that allows you to work with Items e.g. to select, sort or filter them:
To be able to work with the items of a category with ID 1, you have to load them into the memory first, you can do this as follows:
Now, the items of your category are loaded in memory. To select your item (SimpleItem) with the ID 2155046657, do the following:
You can access the value of an SimpleItem object as follows:
Your example here should work. Check again the ID's. Check under "Admin" > "Manager" > "Items", whether an item was created:
Hope that helps you a little.
you're almost doing it right.
This is your mistake:
PHP Code:
echo $item->text;
The main difficulty with IM2 is that there are 2 types of item-object. The first one is native "Item" object and the second one is "SimpleItem" object - this can be really confusing...
It's better to use native "Item" object only if you intend to modify an item, e.g. to store a value in an item field, etc. But if you want to just view the items, you should rather use the "SimpleItem" object.
So let's get back to your problem. With this method you select an "Item" object, but access the "text" field as if it were a SimpleItem object:
PHP Code:
$item = $imanager->getItem(1, 2155046657); // $item is an "Item" object
echo $item->text; // <- There's wrong SimpleItem method
If you want to access an "Item" object field value, you have to do it this way:
PHP Code:
echo $item->fields->text->value
// or:
echo $item->getFieldValue('text');
In the case above, you don't want to have "write" access to the item, you only want to show the value of a field. That' s why it is better to use SimpleItem object in this case. To be able to operate with SimpleItem objects, you should use the ItemMapper class. ItemMapper - is a class that allows you to work with Items e.g. to select, sort or filter them:
PHP Code:
$imanager = imanager();
$itemMapper = $imanager->getItemMapper();
To be able to work with the items of a category with ID 1, you have to load them into the memory first, you can do this as follows:
PHP Code:
$itemMapper->alloc(1);
Now, the items of your category are loaded in memory. To select your item (SimpleItem) with the ID 2155046657, do the following:
PHP Code:
$SimpleItem = $itemMapper->getSimpleItem(2155046657);
You can access the value of an SimpleItem object as follows:
PHP Code:
echo $SimpleItem->text;
Your example here should work. Check again the ID's. Check under "Admin" > "Manager" > "Items", whether an item was created:
PHP Code:
$imanager = imanager();
$item = new Item(1);
$item->name = 'My item name';
$item->setFieldValue('data', 'Your field value');
$item->save();
Hope that helps you a little.