We use cookies to improve your experience. No personal information is gathered and we don't serve ads. Cookies Policy.

ExpressionEngine Logo ExpressionEngine
Features Pricing Support Find A Developer
Partners Upgrades
Blog Add-Ons Learn
Docs Forums University
Log In or Sign Up
Log In Sign Up
ExpressionEngine Logo
Features Pro new Support Find A Developer
Partners Upgrades
Blog Add-Ons Learn
Docs Forums University Blog
  • Home
  • Forums

Make Category Entry From Plugin(Programatically)

How Do I?

Andrés Molina's avatar
Andrés Molina
43 posts
5 years ago
Andrés Molina's avatar Andrés Molina

Im have this code, but im get a Error

$category = ee('Model')->make('Category');
  $category->site_id = ee()->config->item('site_id');
  $category->parent_id = 0;
  $category->cat_name = "Category Name String";
  $category->setCategoryGroup(5);
  $category->cat_url_title = strtolower(str_replace(' ', '-', "Category Name String")); 

  $category->save();

The Error

Exception Caught
Must be a model, collection, or array of models

ee/EllisLab/ExpressionEngine/Service/Model/Association/Association.php:360
Stack Trace: Please include when reporting this error

    #0 ee/EllisLab/ExpressionEngine/Service/Model/Association/Association.php(82): EllisLab\ExpressionEngine\Service\Model\Association\Association->toModelArray(5)
    #1 ee/EllisLab/ExpressionEngine/Service/Model/Model.php(190): EllisLab\ExpressionEngine\Service\Model\Association\Association->set(5)
    #2 ee/EllisLab/ExpressionEngine/Service/Model/Mixin/Relationship.php(106): EllisLab\ExpressionEngine\Service\Model\Model->__set('CategoryGroup', 5)
    #3 ee/EllisLab/ExpressionEngine/Service/Model/Model.php(151): EllisLab\ExpressionEngine\Service\Model\Mixin\Relationship->runAssociationAction(Array, Array)
    #4 user/addons/tcdcl_utilities/pi.tcdcl_utilities.php(222): EllisLab\ExpressionEngine\Service\Model\Model->__call('setCategoryGrou...', Array)
    #5 ee/legacy/libraries/Template.php(1847): Tcdcl_utilities->importar_categoria()
    #6 ee/legacy/libraries/Template.php(1482): EE_Template->process_tags()
    #7 ee/legacy/libraries/Template.php(578): EE_Template->tags()
    #8 ee/legacy/libraries/Template.php(234): EE_Template->parse('{!-- ra:0000000...', false, 1, false)
    #9 ee/legacy/libraries/Template.php(165): EE_Template->fetch_and_parse('', Array, false)
    #10 ee/legacy/libraries/Core.php(661): EE_Template->run_template_engine('', '')
    #11 ee/legacy/controllers/ee.php(63): EE_Core->generate_page()
    #12 [internal function]: EE->index()
    #13 ee/EllisLab/ExpressionEngine/Core/Core.php(241): call_user_func_array(Array, Array)
    #14 ee/EllisLab/ExpressionEngine/Core/Core.php(110): EllisLab\ExpressionEngine\Core\Core->runController(Array)
    #15 ee/EllisLab/ExpressionEngine/Boot/boot.php(151): EllisLab\ExpressionEngine\Core\Core->run(Object(EllisLab\ExpressionEngine\Core\Request))
    #16 index.php(173): require_once('...')
    #16 index.php(173): require_once('...')
       
Andrés Molina's avatar
Andrés Molina
43 posts
5 years ago
Andrés Molina's avatar Andrés Molina

Ok now can do this with Tiny Modifications

$cat_group = is_numeric(5)
   ? ee('Model')->get('CategoryGroup', 5)
   : ee('Model')->get('CategoryGroup');
  $cat_group = $cat_group
   ->filter('site_id', ee()->config->item('site_id'))
   ->first();
   
   
  $category = ee('Model')->make('Category');
  $category->site_id = ee()->config->item('site_id');
  $category->parent_id = 0;
  $category->cat_name = $data[1];
  $category->setCategoryGroup($cat_group);
  $category->cat_url_title = strtolower(str_replace(' ', '-', $data[1])); 

  $category->save();
       

Reply

Sign In To Reply

ExpressionEngine Home Features Pro Contact Version Support
Learn Docs University Forums
Resources Support Add-Ons Partners Blog
Privacy Terms Trademark Use License

Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.